目录:编程
CLR投射与WinRT组件类型系统规则安全
框架投射框架
用C#定义WinRT组件异步
Windows 运行时:组件的目的是公开操做系统最擅长的事情,就是对硬件和跨应用程序的功能进行抽象。因此大多数WinRT组件都只是公开了功能,好比存储,联网,图形,媒体,安全性,线程处理等。WinRT组件内部做为“组件对象模型”组件来实现。WinRT组件使用由ECMA协会标准化的.NET元数据格式(ECMA-335)来描述其API。异步编程
元数据比类库更优表现力。CLR一开始就经过运行时可调用包装器和COM包装器实现了与COM组件的互操做。操作系统
CLR投射:CLR投射由CLR隐式执行,一般和元数据的从新解释有关。线程
Framework投射:Framework投射由你的代码显示执行,这是经过FCL新引入的API来执行。对象
CLR看到一个WinRT类型时,一般容许经过CLR的通常化COM互操做技术来使用该类型。但有时CLR会隐藏WinRT类型(将其动态设为私有)。而后,CLR经过一个不一样的类型来公开该类型。在内部,CLR会查找特定的类型(经过元数据),而后将这些类型映射成FCL的类型。硬件
异步编程,WinRT流和.NET Framework流之间的互操做以及须要在CLR和WinRT API之间传输数据块的时候须要使用框架投射。程序
2.1 从.NET代码中调用异步WinRT API
2.2 WinRT流和.NET流之间的互操做
2.3 在CLR和WinRT之间传送数据块