2

Assembly.LoadFrom を使用して dll をロードし、後でそのインスタンスを作成しています。

これが私の問題です。DLLを変更できる場合もあります。より正確には、それを削除して、同じ名前とパスで新しいものを作成します。もう一度インスタンス化してメソッドを呼び出すと、使用されているインスタンスが最初のものであることがわかります。

アプリケーションを閉じてメソッドを呼び出すと、適切なインスタンスが使用されています。

リソースの割り当てを解除したり、インスタンスを解放したりする方法はありますか? ここに私のサンプルコードがあります

Assembly sampleAssembly = Assembly.LoadFrom(pathToDll);
MyClassEntity = sampleAssembly.CreateInstance("InstanceName") as MyClass;

MyClass は抽象クラスです。

4

1 に答える 1

3

アセンブリは一度読み込まれ、メモリに保持されます。ロードされたアセンブリを削除するには、それを個別にロードしてAppDomainドメインを削除する必要があります。

このリンクを参照してください: http://msdn.microsoft.com/en-us/library/vstudio/ms173101.aspx

そしてこれ: .NET アプリケーション ドメインのアセンブリを再読み込みする方法は?

于 2013-06-06T12:26:24.157 に答える