如何转换CreateInstance的返回值

| 类型未知时,如何转换CreateInstance的返回值? 例如下面的代码:
MethodInfo mInfo = typeof(MyType).GetMethod(MethodBase.GetCurrentMethod().Name);
Object o = Activator.CreateInstance(mInfo.ReturnType);
如何将o转换为mInfo.ReturnType包含的内容?     
已邀请:
强制转换(至少按照您通常的意思)是一种编译时/静态类型的操作。在运行时使用未知类型甚至是有意义的唯一方法是处理泛型(将其广播到某些
T
中-并且请注意,您可以在运行时通过
MakeGenericMethod
或ѭ4choose选择choose1ѭ)或元编程(发出IL)做适当的演员)。在所有其他情况下,如果类型直到运行时都是未知的,则您将受困于
object
dynamic
。     
通常情况下,您不能习惯性地执行此操作,除非情况
mInfo.ReturnType
包含类型定义,该定义在编译时在当前上下文中可见。例如,如果
mInfo.ReturnType
具有
bool
定义,则只需执行以下操作:
bool t = (bool)o;
但是在这种情况下,无需使用Activator。当您尝试使用从另一个程序集加载的类型时,使用Activator类,换句话说,该类型在编译时不可见。 因此,答案是您无能为力。     

要回复问题请先登录注册