我有一个方法,我需要根据用户设置动态更改使用的类,如下所示,类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 \ nParameter name:typeName”}
我是否遗漏了动态类型的用法?有没有更好的方法动态选择在运行时使用的正确类?
答案 0 :(得分:0)
我认为你应该首先通过Constructor初始化类“Years”的变量,你应该尝试访问该方法。即dEnvelope = new Years().Y2013.DataEnvelope();
还请展示您的代码段以便更好地理解。