C# では、Assembly.LoadFrom() を使用してロードされたアセンブリは、メモリを解放してリソースを解放するために明示的にアンロードする必要があります。アセンブリによって保持されています。
アセンブリをアンロードするには、AppDomain.Unload メソッドを使用できます。このメソッドは、指定された AppDomain をアンロードします。これにより、その AppDomain 内にロードされたすべてのアセンブリがアンロードされます。次に例を示します。
// Create a new AppDomain and load the assembly AppDomain dom = AppDomain.CreateDomain("some"); AssemblyName assemblyName = new AssemblyName(); assemblyName.CodeBase = pathToAssembly; Assembly assembly = dom.Load(assemblyName); // Get the types from the assembly Type[] types = assembly.GetTypes(); // Unload the AppDomain AppDomain.Unload(dom);
assem = null だけを呼び出しても、アセンブリがすぐにアンロードされるとは限りません。未参照のリソースを再利用するには、ガベージ コレクターを実行する必要があります。 C# ではガベージ コレクターを明示的に呼び出すことはできません。
ただし、GC.Collect メソッドを呼び出すことで、ガベージ コレクターを強制的に早く実行することができます。このメソッドはガベージ コレクション サイクルをトリガーし、到達不能なオブジェクトをすべて再利用しようとします。一部のシナリオでは GC.Collect を使用してパフォーマンスを向上させることができますが、アプリケーションに一時停止が発生する可能性があるため、GC.Collect に過度に依存することは一般的にお勧めできません。
以上がC# で Assembly.LoadFrom() でロードされたアセンブリをアンロードする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。