初始化动态类型的类



我有一个方法,我需要动态地改变使用的类取决于用户设置如下,类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();

也请显示您的代码片段,以便更好地理解。

相关内容

  • 没有找到相关文章

最新更新