.NET アセンブリのインスタンスの動的ロードと作成
多くの開発シナリオでは、名前と使用するクラスだけを知っていて、実行時に .NET アセンブリのインスタンスを読み込んで作成する必要がある場合があります。 これは、プロジェクトに参照を明示的に追加する従来の参照とは異なります。
Assembly.LoadFrom と Activator.CreateInstance の使用
.NET Framework は、これを処理するツールを提供します。 Assembly.LoadFrom
はアセンブリをメモリに読み込み、その型にアクセスできるようにします。次に、Activator.CreateInstance
は、そのアセンブリ内に指定されたクラスのインスタンスを作成します。
コード例
アセンブリをロードしてクラス インスタンスを作成する方法は次のとおりです。
<code class="language-csharp">Assembly assembly = Assembly.LoadFrom("library.dll"); Type type = assembly.GetType("Company.Project.Classname"); object instanceOfClassname = Activator.CreateInstance(type);</code>
不明なパスの処理
DLL の正確なパスが不明な場合、Assembly.LoadFrom
は機能しません。 この状況では、Activator.CreateInstance(assemblyName, typeName)
を試してみてください。 このメソッドは、アセンブリ名と型名に基づいて型を見つけようとします。失敗した場合は、アセンブリの特定のディレクトリを検索し、インスタンス化に Assembly.LoadFrom
を使用できます。
このアプローチにより、アプリケーションに実行時の柔軟性が追加され、事前に明示的に参照しなくてもアプリケーションがアセンブリと対話できるようになります。
以上が名前とクラス名だけがわかっている .NET アセンブリをロードしてインスタンス化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。