将对象动态转换为实际类

本文关键字:转换 对象 动态 | 更新日期: 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;