gpt4 book ai didi

c# - Activator.CreateInstance 有两个接口(interface)

转载 作者:行者123 更新时间:2023-12-02 22:16:01 24 4
gpt4 key购买 nike

我有一个正在处理的项目,我想利用 Activator.createInstance 来动态地从 XML 中提取类名。这些类必须至少订阅两个接口(interface)之一,具体取决于它们的功能。我的问题是,当我使用 Activator.CreateInstance 时,判断我实例化的类订阅哪个接口(interface)的最佳方式是什么?我应该用 try catch 包裹类型转换吗?看起来那会很慢。也许我应该将它转换为 obj 然后调用 GetType 并将其与我的接口(interface)名称进行比较?感谢您的帮助!

最佳答案

所以您已经创建了对象?然后就像使用 is operator 一样简单.

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

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

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

关于c# - Activator.CreateInstance 有两个接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14441064/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com