0

私はこのようなセクションを持っています

<mySection type="Namespace.MyClass, AssemblyName" />

私のコードでは、MyClass のインスタンスを作成する必要があるため、次のようにします。

string type = GetMySectionType(); // "Namespace.MyClass, AssemblyName"

var typeParts = type.Split(',');
var className = typeParts[0].Trim();
var assemblyName = typeParts[1].Trim();
var assembly = Assembly.Load(assemblyName);
var myObj = (MyClass)assembly.CreateInstance(className);

文字列を分割せずにそれを行うより良い方法があると確信していますが、Googleでそれについて何も見つけられませんでした。

編集:何もせずに「タイプ」としてタイプを取得するフレームワークからの組み込みのものはありますか?

4

1 に答える 1

1

GetType(string typename) メソッドを使用できます。たとえば、次のようにします。

string type = GetMySectionType(); // "Namespace.MyClass, AssemblyName"
Type myType = Type.GetType(type);
var myObj = (MyClass)Activator.CreateInstance(myType);

詳細については、このページを参照してください。

于 2010-10-08T10:35:39.143 に答える