基于这篇文章:Instantiate a class from its textual name
我正在尝试访问实例化对象内部的方法,但它仍然是一个对象。我们知道在访问该方法之前必须先进行转换。在我的情况下,我不能做演员,因为这个类是动态的。有没有解决方案?
到目前为止,我的代码与上面的帖子不同。我只需要在实例化之后调用该方法。
提前致谢
答案 0 :(得分:2)
当通常的类型安全方法不适用时,至少有两个方法可以动态调用方法:
dynamic o = GetSomeObject();
o.SomeMethod();
或:
object o = GetSomeObject();
MethodInfo mi = o.GetType().GetMethod("SomeMethod");
mi.Invoke(o);
请注意,前者更简单,并且受益于后一个示例中不会出现的某些编译器和运行时支持(包括动态绑定的缓存)。
答案 1 :(得分:0)
您是否尝试将对象实现为接口?
或者你也可以使用' as'关键字
MyClass test = regularobject as MyClass;