我可以使用像「dumpbin」和「dll export」這樣的工具來查看標準Win32 DLL的公共入口點(「出口」),如Windows \ SYSTEM32 \ GDI32.dll。但是,當我使用同樣的工具.Net的DLL中我看到的是一樣的東西如何獲得.Net DLL的公共導出列表?
2000 .reloc 2000 .rsrc 48000 .text
我有一個C#/。NET的DLL,它提供的入口點,以控制工業過程,我要檢查它的公開入境點對我們的文件,以確保公開文件的完整性。什麼工具顯示.Net DLL的公共入口點?
我試過Jetbrains DotPeek,它將DLL完整的反編譯成C#源代碼,但這太過於誇張,因爲它顯示了一切,似乎沒有一個彙總模式,它只是報告公共入口點。
所有具有公共方法和屬性的公共類和接口都可以看作.NET程序集的「公共導出」。因此,您可以使用某個反編譯器手動查看它(如您已經這樣做),或嘗試使用Reflection編寫代碼以列出所有這些方法。 –
託管程序集不使用非託管導出。有很多方法可以解決這個問題,理性的是編寫單元測試。 –
不確定單元測試如何解決這個問題。我們的目標是確保當用戶擁有我們的DLL時,通過DLL **公開顯示的所有內容都被記錄下來。顯然,我們可以通過研究源代碼或程序集來推測公開可見的內容,但這只是一個猜測。知道DLL暴露的是經驗性測試,或者至少我們是如何使用較老的Win32 DLL來完成的。程序集和源代碼告訴我們**應該是公開可見的,我希望DLL能夠提供一個雙重檢查,實際上**是公開可見的。 – user316117