【发布时间】:2013-02-27 16:41:37
【问题描述】:
我有一个方法,我需要根据用户设置动态更改使用的类,如下所示,dEnvelope 类也需要初始化其属性以填充所有子类并以相同的方式使用,所有这些不同的 Year 类都有确切的结构,但业务逻辑的内部方法不同
dynamic dEnvelope;
if (UserYear==2013)
dEnvelope = new Years.Y2013.DataEnvelope();
else
dEnvelope = new Years.Y2012.DataEnvelope();
dEnvelope.InnerClass= Activator.CreateInstance(Type.GetType(dEnvelope.InnerClass));
但是在执行 Activator.CreateInstance 行时我收到一个错误
{"值不能为空。\r\n参数名称:typeName"}
我是否遗漏了有关动态类型使用的一些内容?有没有更好的方法来动态选择要在运行时使用的正确类?
【问题讨论】:
标签: c# c#-4.0 dynamic reflection activator