ホームページ >バックエンド開発 >C++ >名前とクラス名だけがわかっている .NET アセンブリをロードしてインスタンス化するにはどうすればよいですか?

名前とクラス名だけがわかっている .NET アセンブリをロードしてインスタンス化するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-19 09:11:09232ブラウズ

How Can I Load and Instantiate a .NET Assembly Knowing Only Its Name and Class Name?

.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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。