アセンブリの読み込みについて詳しく解説したもの(C#)
Assembly.Loadメソッドは.NET Frameworkによって提供される、アセンブリをロードするためのメソッドです。ファイルパス、ファイルストリーム、バイト配列、およびアセンブリの表示名など、さまざまなソースからアセンブリをロードすることができます。
方法の署名は以下の通りです。
public static Assembly Load(string assemblyString)
assemblyStringは、アセンブリを表す文字列であり、アセンブリファイルのパス、ファイルストリーム、バイト配列、またはアセンブリの表示名である。表示名は通常、アセンブリの完全修飾名であり、アセンブリの名前、バージョン番号、カルチャや公開鍵情報などが含まれる。assemblyStringがファイルパスである場合、Loadメソッドはファイルパスからアセンブリを読み込む。assemblyStringがアセンブリの表示名である場合、Loadメソッドはグローバルアセンブリキャッシュや読み込みコンテキストから一致するアセンブリを検索して読み込む。
戻り値は読み込まれたアセンブリオブジェクトであり、その型はAssemblyです。読み込みが成功すると、返されたAssemblyオブジェクトを使用してインスタンスを作成したり、メソッドを呼び出したり、型やメンバーにアクセスしたりすることができます。
Loadメソッドはアセンブリを読み込むだけであり、その中のコードを実行しないことに注意が必要です。アセンブリ内のコードを実行するには、Assembly.GetTypesメソッドを使用してアセンブリ内の型を取得し、リフレクションを使ってインスタンスを作成するかメソッドを呼び出すことができます。
以下は、Assembly.Loadメソッドを使用してアセンブリをロードして使用する方法を示すサンプルコードです。
// 加载程序集
Assembly assembly = Assembly.Load("MyAssembly");
// 获取程序集中的类型
Type myType = assembly.GetType("MyNamespace.MyClass");
// 创建类型的实例
object instance = Activator.CreateInstance(myType);
// 调用方法
MethodInfo method = myType.GetMethod("MyMethod");
method.Invoke(instance, null);
総括すると、Assembly.Loadメソッドはアセンブリをロードするための重要なメソッドであり、ダイナミックなアセンブリの読み込みや使用の場面で非常に役立ちます。これはアセンブリの文字列表現に基づいてアセンブリをロードし、ロードされたアセンブリオブジェクトを返すことができるため、後続の操作を行うことができます。