我有一个方法,我需要根据用户设置动态更改使用的类,如下所示,类 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"}
我是否遗漏了有关动态类型使用的一些信息?有没有更好的方法来动态选择要在运行时使用的正确类?