国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

基于C#的接口基礎教程之六(1)

2024-07-21 02:17:53
字體:
來源:轉載
供稿:網友
第六節、接口轉換
  
    c#中不僅支持.net 平臺,而且支持com平臺。為了支持 com和.net,c# 包含一種稱為屬性的獨特語言特性。一個屬性實際上就是一個 c# 類,它通過修飾源代碼來提供元信息。屬性使 c# 能夠支持特定的技術,如 com 和 .net,而不會干擾語言規范本身。c# 提供將com接口轉換為 c#接口的屬性類。另一些屬性類將 com類轉換為c# 類。執行這些轉換不需要任何 idl 或類工廠。
  
    現在部署的任何com 組件都可以在接口轉換中使用。通常情況下,所需的調整是完全自動進行的。
  
    特別是,可以使用運行時可調用包裝 (rcw) 從 .net 框架訪問 com 組件。此包裝將 com 組件提供的 com 接口轉換為與 .net 框架兼容的接口。對于 ole 自動化接口,rcw 可以從類型庫中自動生成;對于非 ole 自動化接口,開發人員可以編寫自定義 rcw,手動將 com 接口提供的類型映射為與 .net 框架兼容的類型。
  
    使用comimport引用com組件
  com interop 提供對現有 com 組件的訪問,而不需要修改原始組件。使用comimport引用com組件常包括下面 幾個方面的問題:
  
    1、創建 com 對象。
  
    2、確定 com 接口是否由對象實現。
  
    3、調用 com 接口上的方法。
  
    4、實現可由 com 客戶端調用的對象和接口。
  
    創建 com 類包裝
  
    要使 c# 代碼引用com 對象和接口,需要在 c# 中包含 com 接口的定義。完成此操作的最簡單方法是使用 tlbimp.exe(類型庫導入程序),它是一個包括在 .net 框架 sdk 中的命令行工具。tlbimp 將 com 類型庫轉換為 .net 框架元數據,從而有效地創建一個可以從任何托管語言調用的托管包裝。用 tlbimp 創建的 .net 框架元數據可以通過 /r 編譯器選項包括在 c# 內部版本中。如果使用 visual studio 開發環境,則只需添加對 com 類型庫的引用,將為您自動完成此轉換。
  
    tlbimp 執行下列轉換:
  
    1、com coclass 轉換為具有無參數構造函數的 c# 類。
  
    2、com 結構轉換為具有公共字段的 c# 結構。
  
    檢查 tlbimp 輸出的一種很好的方法是運行 .net 框架 sdk 命令行工具 ildasm.exe(microsoft 中間語言反匯編程序)來查看轉換結果。
  
    雖然 tlbimp 是將 com 定義轉換為 c# 的首選方法,但也不是任何時候都可以使用它(例如,在沒有 com 定義的類型庫時或者 tlbimp 無法處理類型庫中的定義時,就不能使用該方法)。在這些情況下,另一種方法是使用 c# 屬性在 c# 源代碼中手動定義 com 定義。創建 c# 源映射后,只需編譯 c# 源代碼就可產生托管包裝。
  
    執行 com 映射需要理解的主要屬性包括:
  
    1、comimport:它將類標記為在外部實現的 com 類。
  
    2、guid:它用于為類或接口指定通用唯一標識符 (uuid)。
  
    3、interfacetype,它指定接口是從 iunknown 還是從 idispatch 派生。
  
    4、preservesig,它指定是否應將本機返回值從 hresult 轉換為 .net 框架異常。
注冊會員,創建你的web開發資料庫,
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 通道| 平舆县| 南溪县| 新源县| 福鼎市| 洛川县| 永新县| 乃东县| 台中市| 临汾市| 邵阳县| 宜黄县| 修武县| 双辽市| 罗江县| 金门县| 成安县| 余庆县| 湖口县| 潮州市| 饶阳县| 泸定县| 娱乐| 嘉荫县| 兰西县| 余干县| 湾仔区| 浦江县| 富顺县| 天全县| 壶关县| 阜平县| 库尔勒市| 连南| 会东县| 黄大仙区| 嘉善县| 牟定县| 宣威市| 东兴市| 锡林浩特市|