2

我有一个正在处理的项目,我想利用 Activator.createInstance 来动态地从 XML 中提取类名。类必须根据其功能订阅至少两个接口之一。我的问题是,当我使用 Activator.CreateInstance 时,判断我实例化的类订阅哪个接口的最佳方法是什么?我应该将演员表包裹在 try catch 中吗?这似乎会非常缓慢。也许我应该将其转换为 obj 然后调用 GetType 并将其与我的接口名称进行比较?任何帮助表示赞赏!

4

1 回答 1

5

所以你已经创建了对象?然后就像使用isoperator一样简单。

var obj = Activator.CreateInstance(...);
bool objIsIMyInterface = obj is IMyInterface;

如果您想在创建 a 时进行测试System.Type,可以使用Type.IsAssignableFrom

Type type = ...
bool typeIsIMyInterface = typeof(IMyInterface).IsAssignableFrom(type);
于 2013-01-21T14:49:03.147 回答