我有一个方法,我需要动态地改变使用的类取决于用户设置如下,类dEnvelope需要有它的属性初始化以及填充所有子类和使用相同的方式,所有这些不同的年类有确切的结构,但业务逻辑不同在他们的内部方法
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行
{"值不能为空。rnParameter name: typeName"}
我是否错过了动态类型的用法?是否有更好的方法动态地选择在运行时使用的正确类?
我认为你应该首先通过构造函数初始化类"Years"的变量,然后你应该尝试访问该方法。即dEnvelope = new Years().Y2013.DataEnvelope();
也请显示您的代码片段,以便更好地理解。