以下のように、ユーザー設定に応じて使用されるクラスを動的に変更する必要があるメソッドがあります。クラス 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 行を実行するとエラーが発生します。
{"値を null にすることはできません。\r\nパラメータ名: typeName"}
動的タイプの使用法について何か不足していますか? 実行時に使用する正しいクラスを動的に選択するより良い方法はありますか?