実行時にアセンブリを読み込もうとしていますが、 static を使用してアセンブリに型のインスタンスを作成できない理由がわかりませんActivator.CreateInstance()
。で動作しAssembly.CreateInstance()
ます。
string assemblyFilename = "MyAssembly.dll";
string assemblyName = "MyAssembly";
string typeName = "MyAssembly.MyType";
FileInfo fileInfo = new FileInfo(assemblyFilename);
これは機能します:
var assembly = Assembly.LoadFrom(assemblyFilename);
Form form = (Form)assembly.CreateInstance(typeName);
しかし、これは機能しません:
Assembly.LoadFrom(assemblyFilename);
Form form = (Form)Activator.CreateInstance(assemblyName, typeName).Unwrap();
FileNotFoundException がスローされました:
ファイルまたはアセンブリ 'MyAssembly' またはその依存関係の 1 つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。
編集:
どちらの場合も、Assembly.LoadFrom()
呼び出しの後、 を調べると、アセンブリが読み込まれていることがわかりますAppDomain.CurrentDomain.GetAssemblies()
。