【发布时间】:2023-03-10 09:25:01
【问题描述】:
我正在开发一个在启动时从子目录加载插件的应用程序,目前我正在通过使用反射来迭代每个程序集的类型并找到实现 IPluginModule 接口的公共类来做到这一点。
由于反射涉及性能损失,并且我预计一段时间后会有多个插件,我想知道定义在程序集级别应用的自定义属性是否有用,可以在迭代类型之前检查该属性(在一个程序集中可能有十几种类型,包括 IPluginModule 的 1 个实现者)。
该属性(如果存在)然后可以提供一种方法来返回所需的类型或实例,并且迭代这些类型将只是一种回退机制。不能将类型信息存储在配置文件中。
这会提高性能,还是与实际从存储中加载程序集所需的时间相比无关紧要?另外,这种用法是否适合属性?
【问题讨论】:
-
性能受到影响?我希望来自 Java,而不是来自 C# - 我很想知道您是否以及如何衡量它。
标签: c# .net reflection architecture plugins