2009-06-01 54 views
1

我正在構建一個項目。這是一個用戶可以將其擴展(DLL文件)添加到的應用程序。要管理擴展,我需要獲得它的類,函數等的列表。是否有代碼做這件事?獲取DLL的函數列表

注意:我正在使用C#。

回答

12

對於特定的組件,您可以使用Assembly.GetTypes拿到類型,然後爲每個類型的呼叫Type.GetMethods()Type.GetProperties()等,或者只是Type.GetMembers()

但是,對於插件功能來說,擁有插件必須實現的通用接口通常是一個好主意 - 這可以減少您需要使用的反射量。使用Type.IsAssignableFrom()檢查某個類型是否與特定接口兼容。

你可能也想看看Managed Extensibility Framework這可以使實現擴展系統更容易。

+0

+1看着MEF – 2009-06-01 18:21:43

0

如果你談論的是建立在C#中加載其他組件,並使用其內容的擴展應用程序的可擴展應用程序,然後看到堆棧溢出問題System with plugins in C#