我正在建立一个项目。这是一个用户可以添加其扩展(DLL文件)的应用程序。要管理扩展,我需要获取它的类,函数等的列表。是否有代码来执行它?
注意:我使用的是C#。
答案 0 :(得分:13)
对于特定的程序集,您可以使用Assembly.GetTypes
来获取类型,然后为每种类型调用Type.GetMethods()
,Type.GetProperties()
等,或只使用Type.GetMembers()
。
但是,对于插件功能,通常最好有一个插件必须实现的通用接口 - 这样可以减少需要使用的反射量。使用Type.IsAssignableFrom()
检查类型是否与特定接口兼容。
您可能还想查看可以更轻松地实施扩展系统的Managed Extensibility Framework。
答案 1 :(得分:0)
如果您正在讨论在C#中构建可扩展应用程序以加载其他程序集并使用其内容来扩展应用程序,请参阅Stack Overflow问题 System with plugins in C# 。