【发布时间】:2010-11-16 06:02:42
【问题描述】:
我已经实现了一个“插件”系统,我的应用程序在其中创建了在运行时实现接口以允许可插入功能的类。
我通过在插件程序集中实现指定接口的所有类上使用 Activator.CreateInstance 来实现这一点。
目前我只使用该类的一个实现,为此我有两个构造函数参数,并将它们包含在 Activator.CreateInstance 调用中:
instanceList.Add((Foo)Activator.CreateInstance(_TypeList[typeKey], new object[] { arg1, arg2 }));
我意识到如果添加不使用此构造函数签名的实现,以后可能会导致问题。处理这个问题的最佳情况是什么。
通过文档明确说明构造函数需要使用此签名,然后将其包围在 try/catch 中?
或者有没有办法调用一个类的任何构造函数?请记住,我必须以某种方式匹配构造函数参数。
或者...通过将参数放在静态类中作为静态属性来避免构造函数参数?
【问题讨论】:
标签: c# reflection activator