Activator.CreateInstance有两个接口

时间:2013-01-21 14:45:50

标签: c# interface activator

我正在开发一个项目,我想利用Activator.createInstance,以便我可以动态地从XML中提取类名。这些类必须根据其功能订阅两个接口中的至少一个。我的问题是,当我使用Activator.CreateInstance时,告诉我实例化的类订阅哪个接口的最佳方法是什么?我应该把演员包裹在试试中吗?看起来好像很慢。也许我应该把它转换为obj然后调用GetType并将其与我的接口名称进行比较?任何帮助表示赞赏!

1 个答案:

答案 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);