4

私は次のようなものを作る必要があります:

Type CustomType = Type.GetType("instanceName");

常に null を返します。instanceName は、参照に追加された dll に含まれる型を表す文字列です (copyLocal プロパティが false に設定されています)。

私も試しました:

Type CustomType = Type.GetType("instanceName, dllFile.dll");

ただし、null も返します。

どうもありがとう

アレックス

4

2 に答える 2

5

アセンブリが既に読み込まれている場合は、これを試すことができます。

Type customType = Type.GetType("namespace.typename, assembly");
于 2012-06-27T07:20:52.310 に答える
4

アセンブリを GAC に展開せず、CopyLocal設定が に設定されてfalseいる場合、どこからアセンブリをロードする予定ですか?

アセンブリをドライブ上の固定された場所に配置することを計画している場合は、次を使用できますAssembly.LoadFrom

var assembly = Assembly.LoadFrom(@"C:\Path\To\Assembly.dll");
var type = assembly.GetType("InstanceName");

これにより、絶対アセンブリをロードできます。を使用している場合Type.GetType、標準の Fusion アセンブリ ロード ルールを使用して一致するアセンブリを見つけようとします (ただし、GAC またはCopyLocal=ではない場合true)。出力と共にデプロイされず、GetTypenull が返されます。

また、タイプ名にアセンブリ名を指定しない場合、たとえばinstanceName, assemblyNameの代わりに、現在実行中のアセンブリのみがチェックされるinstanceNameと思います。

于 2012-06-27T07:20:53.030 に答える