rksoftware

Visual Studio とか C# とかが好きです

C# で DLL をファイル名で読み込む

DLL をファイル名で動的に読み込みたいことはあまりないかもしれませんが、ない事もない要件です。

■ Assembly.LoadFrom(string) メソッド

Assembly.LoadFrom(string) メソッドで読み込めます。
引数の string は dll の拡張子まで含めたパスです。
こんな感じです。

System.Reflection.Assembly.LoadFrom("ClassLibrary1.dll")

例えば次のようなクラスが ClassLibrary1.dll にあった場合

namespace ClassLibrary1
{
    public class Class1
    {
    }
}

次のようにして読み込んで、リフレクションで取り出せます。

System.Reflection.Assembly.LoadFrom("ClassLibrary1.dll");
var types = AppDomain.CurrentDomain.GetAssemblies().SelectMany(asm => asm.GetTypes());