初始化动态类型的类

本文关键字:类型 动态 初始化 | 更新日期: 2023-09-27 18:03:40

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

{"值不能为空。'r'nParameter name: typeName"}

我是否错过了动态类型的用法?是否有更好的方法动态地选择在运行时使用的正确类?

初始化动态类型的类

我认为你应该首先通过构造函数初始化类"Years"的变量,然后你应该尝试访问该方法。即dEnvelope = new Years().Y2013.DataEnvelope();

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