具有两个接口的 Activator.CreateInstance

本文关键字:接口 Activator CreateInstance 两个 | 更新日期: 2023-09-27 17:55:13

我有一个项目,我想利用Activator.createInstance,以便我可以动态地从XML中提取类名。这些类必须订阅两个接口中的至少一个,具体取决于其功能。我的问题是,当我使用 Activator.CreateInstance 时,判断我实例化的类订阅哪个接口的最佳方法是什么?我应该用尝试捕捉包裹演员吗?这似乎会非常缓慢。也许我应该将其转换为 obj,然后调用 GetType 并将其与我的接口名称进行比较?任何帮助不胜感激!

具有两个接口的 Activator.CreateInstance

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

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

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

Type type = ...
bool typeIsIMyInterface = typeof(IMyInterface).IsAssignableFrom(type);