将对象动态转换为实际类
本文关键字:转换 对象 动态 | 更新日期: 2023-09-27 18:29:30
基于这篇文章:从文本名称实例化一个类
我试图访问实例化对象内部的方法,但它仍然是一个对象。我们知道,在访问该方法之前,必须先对其进行强制广播。在我的情况下,我不能执行强制转换,因为类是动态的。有什么解决办法吗?
到目前为止,我的代码与上面的帖子没有什么不同。我只需要在实例化后调用该方法。
提前感谢
当通常的类型安全方法不适用时,您至少有两个动态调用方法的选项:
dynamic o = GetSomeObject();
o.SomeMethod();
或:
object o = GetSomeObject();
MethodInfo mi = o.GetType().GetMethod("SomeMethod");
mi.Invoke(o);
请注意,前者更简单,并受益于后一个示例中没有的一些编译器和运行时支持(包括动态绑定的缓存)。
您是否尝试将对象实现为接口?
或者你也可以使用关键字
MyClass test = regularobject as MyClass;