0

我有一个方法,我需要根据用户设置动态更改使用的类,如下所示,类 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"}

我是否遗漏了有关动态类型使用的一些信息?有没有更好的方法来动态选择要在运行时使用的正确类?

4

1 回答 1

0

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

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

于 2013-03-12T08:49:53.420 回答