我想創建一個工具,接受一個。 winmd
文件(Windows運行時組件)並生成一個C#DLL(包含組件中定義的所有公共類型)。winmd自動轉換爲DLL
據我所知,標準的.NET Reflection APIs不能在.winmd文件上工作,並且必須使用Metadata Unmanaged APIs來訪問這些信息。
問題是 - 是否可以從Metadata API檢索的信息中構建C#程序集?
或更好的是 - 是否有一個工具(如TLBIMP),已經完成這項工作或類似的東西?
我想創建一個工具,接受一個。 winmd
文件(Windows運行時組件)並生成一個C#DLL(包含組件中定義的所有公共類型)。winmd自動轉換爲DLL
據我所知,標準的.NET Reflection APIs不能在.winmd文件上工作,並且必須使用Metadata Unmanaged APIs來訪問這些信息。
問題是 - 是否可以從Metadata API檢索的信息中構建C#程序集?
或更好的是 - 是否有一個工具(如TLBIMP),已經完成這項工作或類似的東西?
Windows元數據文件不包含任何代碼 - 它只是一組類型定義。而一個winmd文件是一個ECMA 335程序集,因此它已經是是一個C#DLL(將它從.winmd重命名爲.dll)。
這不起作用。不能像正常程序集一樣加載winmd(獲取NotSupportedException)。 – 2013-05-03 07:58:12
我會從上面重複我的問題:你想做什麼? – 2013-05-03 17:30:15
只需使用體面的反彙編程序。反編譯器正常編譯爲C#可以正常工作。添加.winmd文件,同時添加Windows.winmd。右鍵單擊+導出源代碼。 – 2013-05-02 23:12:51
當然,winmd文件中不會有任何代碼,因爲winmd文件只是元數據,但您可能能夠看到通過intellisense獲得的方法定義。 – 2013-05-03 04:54:57
你想做什麼?這可能有助於改變答案。 – 2013-05-03 04:56:16