いいえ、これはジェネリックスに関する質問ではありません。Activator.CreateInstance(文字列)とActivator.CreateInstance <T>()の違い
私は、内部コンストラクタを持ついくつかのクラスを持つFactoryパターンを持っています(私は工場ではなくインスタンス化されたくありません)。
私の問題は、非公開のパラメータに "true"を渡さない限り、CreateInstance
が "このオブジェクトに対して定義されたパラメータなしコンストラクタなし"エラーで失敗するということです。私はこのようなことが少し簡単にするために、一般的な工場、作りたかった
// Fails
Activator.CreateInstance(type);
// Works
Activator.CreateInstance(type, true);
例:しかし
public class GenericFactory<T> where T : MyAbstractType
{
public static T GetInstance()
{
return Activator.CreateInstance<T>();
}
}
は、私は「真」渡す方法を見つけることができませんでした非公開のコンストラクタ(内部)を受け入れるためのパラメータ。
私は何かが恋しくなったのですか、それともできませんでしたか?この問題を回避するには
はなぜtrueに設定プライベートブール変数とパラメータなしのコンストラクタを定義していないでしょうか? – Vivek