目錄:編程
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之間傳送數據塊