rksoftware

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

別アセンブリのクラスをリフレクションで取得する

Type をクラス名の文字列で取得するには、reflection を使用し、Type.GetType(文字列) メソッドを使用します。
例えば、System.String の Type は

var s = Type.GetType("System.String");

のようになります。

■ 取得できる Type

上記の方法で取得できるのは、自身のアセンブリ(dll / プロジェクト)のクラスと、Mscorlib.dll のクラスだけです。
[ 参考: https://msdn.microsoft.com/ja-jp/library/w3f99sx1(v=vs.110).aspx ]

■ 別アセンブリのクラスを取得するには

引数に設定する文字列を、完全限定名で指定します。
例えば、System.String の Type は

var s = Type.GetType("System.String,mscorlib");

のようになります。
ここで、, の後ろの mscorlib はアセンブリ(dll)名です。

■ アセンブリ名を調べる

Visual Studio であれば、場合によっては簡単に調べることができます。「定義へ移動」をした際に先頭に

#region Assembly mscorlib, Version=4......

のような箇所があります。
この mscorlib の部分をアセンブリ名に設定すれば OK です。