簡體   English   中英

如何從 C# 或 F# 訪問 IMetaDataEmit 和其他 MetaData COM 接口?

[英]How do I access IMetaDataEmit and other MetaData COM interfaces from C# or F#?

我正在用 F# 編寫編譯器,我希望能夠訪問 .net 運行時中的非托管元數據 COM 接口 在任何人提到它之前, Reflection.Emit 不適合我的目的,我也不想使用元數據 COM 接口以外的任何其他方法。

我已經導入了 mscoree.tlb 但它似乎沒有包含我需要的接口。

我感興趣的接口包括IMetaDataEmit 任何與此相關的示例代碼都非常有用,但我目前還沒有找到任何示例代碼。

C# 示例很好,因為我可以輕松地將它們轉換為 F#。

提前感謝任何可以幫助我解決這個相當神秘的查詢的人!

更新:我現在通過使用接口 GUID 編寫顯式 COM 引用來對此進行排序!

這里的一種選擇是創建您自己的項目並將這些接口(使用它們在 cor.h 中的定義)編譯到類型庫中,然后您可以將其 tlbimp 轉換為托管程序集。 我意識到將 C 頭代碼轉換為 IDL 會非常乏味,但這可能會由一些文本處理腳本自動(或部分自動)完成。

我希望您找到了mdbg 示例,其中包含用於准確包裝您需要的接口的源代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM