[Library] DLL の動的読み込み
DLL って言っても、.NET Framework のライブラリなんですけどね。
動的に利用したい事ってたまに有るので、今回は、WCF から動的に呼び出しているが、基本は同じだと思う。
呼ばれる DLL には、
public string GetVersion()
{
return "0.0.9.10";
}
と書かれている。 面倒なんで、ファイル名の取得云々は省略
if (true == System.IO.File.Exists(strFileName))
{
try
{
Assembly cl = Assembly.LoadFile(strFileName);
Type PumilaClass = cl.GetType(strMemberName);
object instance = PumilaClass.InvokeMember(null, BindingFlags.CreateInstance, null, null, null);
result = (string)PumilaClass.InvokeMember("GetVersion", BindingFlags.InvokeMethod, null, instance, null);
}
catch
{
result = "";
}
}
strFileName に、DLL のファイル名が入っていて、strMemberName に、クラスの名前を入れておく、後は、メソッドになっている GetVersion を呼び出せば OK です。
まぁ細かい説明はいいですよね。
これで DLL が動的にアタッチされる事が認識出来ると思います。
動的に利用したい事ってたまに有るので、今回は、WCF から動的に呼び出しているが、基本は同じだと思う。
呼ばれる DLL には、
public string GetVersion()
{
return "0.0.9.10";
}
と書かれている。 面倒なんで、ファイル名の取得云々は省略
if (true == System.IO.File.Exists(strFileName))
{
try
{
Assembly cl = Assembly.LoadFile(strFileName);
Type PumilaClass = cl.GetType(strMemberName);
object instance = PumilaClass.InvokeMember(null, BindingFlags.CreateInstance, null, null, null);
result = (string)PumilaClass.InvokeMember("GetVersion", BindingFlags.InvokeMethod, null, instance, null);
}
catch
{
result = "";
}
}
strFileName に、DLL のファイル名が入っていて、strMemberName に、クラスの名前を入れておく、後は、メソッドになっている GetVersion を呼び出せば OK です。
まぁ細かい説明はいいですよね。
これで DLL が動的にアタッチされる事が認識出来ると思います。
ホーム
開発者の憂鬱
技術情報
DotNetNuke






