第二十五章 與WinRT組件互操做

目錄:編程

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看到一個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之間傳送數據塊

用C#定義WinRT組件

相關文章
相關標籤/搜索