[英]How can I get a list of public exports from a .Net DLL?
我可以使用“dumpbin”和“dll export”之類的工具來查看 Windows\SYSTEM32\GDI32.dll 等標准 win32 DLL 的公共入口點(“exports”)。 但是當我在 .Net DLL 上使用這些相同的工具時,我看到的只是
2000 .reloc 2000 .rsrc 48000 .text
我有一個 C#/.Net DLL,它提供了控制工業過程的入口點,我想根據我們的文檔檢查它的公共入口點,以確保公共文檔的完整性。 什么工具顯示 .Net DLL 的公共入口點?
我嘗試過 Jetbrains DotPeek,它可以將我們的 DLL 完全反編譯為 C# 源代碼,但這太過分了,因為它顯示了所有內容,並且似乎沒有只報告公共入口點的摘要模式。
我假設“入口點”是指“公共類和方法”
使用 Visual Studio 對象瀏覽器怎么樣?
僅作為起點,如何列出當前程序集中的所有公共類型並列出其中的所有公共方法:
Assembly assembly = Assembly.GetExecutingAssembly();
var exports =
assembly.GetExportedTypes()
.SelectMany(type => type.GetMethods(BindingFlags.Instance | BindingFlags.Public)
.Select(member => new
{
type.FullName,
Member = member.ToString()
}))
.ToList();
但這省略了嵌套類、屬性,並且可能應該以幾種方式擴展以滿足問題需求。
如果你沒有 VS - 我喜歡 ILSpy。 微軟現在在應用商店發布它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.