現在、クラスタイプがあり、クラスを作成できるかどうかを知る必要がある場合。結果を呼び出しActivator.CreateInstance(type);
て捨てます。
これは非常に非効率的で問題があるようです。
現在のアプリケーションに対してクラス型をインスタンス化できることを確認する別の方法はありますか?
このテストは、アプリケーションの起動時に行う必要があります。設定ミスを早期に発見できるようにするため。クラスのインスタンスが必要になるまでそのままにしておくと、修正する人がいないときにエラーが発生する可能性があります。
これが私が今していることです。
string className = string.Format("Package.{0}.{1}", pArg1, pArg2);
Type classType = Type.GetType(className);
if (classType == null)
{
throw new Exception(string.Format("Class not found: {0}", className));
}
try
{
// test creating an instance of the class.
Activator.CreateInstance(classType);
}
catch (Exception e)
{
logger.error("Could not create {0} class.", classType);
}