У меня есть метод, в котором мне нужно динамически изменять используемый класс в зависимости от пользовательских настроек, как показано ниже, класс 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"}
Я что-то упустил в использовании динамического типа? Есть ли лучший способ динамического выбора правильного класса для использования во время выполнения?