动态地将对象转换为实际类

时间:2014-11-06 03:30:01

标签: c# .net

基于这篇文章:Instantiate a class from its textual name

我正在尝试访问实例化对象内部的方法,但它仍然是一个对象。我们知道在访问该方法之前必须先进行转换。在我的情况下,我不能做演员,因为这个类是动态的。有没有解决方案?

到目前为止,我的代码与上面的帖子不同。我只需要在实例化之后调用该方法。

提前致谢

2 个答案:

答案 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;