我正在开发一个项目,我想利用Activator.createInstance,以便我可以动态地从XML中提取类名。这些类必须根据其功能订阅两个接口中的至少一个。我的问题是,当我使用Activator.CreateInstance时,告诉我实例化的类订阅哪个接口的最佳方法是什么?我应该把演员包裹在试试中吗?看起来好像很慢。也许我应该把它转换为obj然后调用GetType并将其与我的接口名称进行比较?任何帮助表示赞赏!
答案 0 :(得分:5)
所以你已经创建了这个对象?然后就像使用is
operator一样简单。
var obj = Activator.CreateInstance(...);
bool objIsIMyInterface = obj is IMyInterface;
如果您想在创建System.Type
时进行测试,可以使用Type.IsAssignableFrom
:
Type type = ...
bool typeIsIMyInterface = typeof(IMyInterface).IsAssignableFrom(type);