文字列に基づいてタイプを返す
3790 ワード
C#プログラミングでは、Type.GetType(string)メソッドを使用して文字列に対応するタイプを取得しますが、この文字列の検索はすべてのプログラムセットと参照されるプログラムセットではありません.だから自分で書きます.
///
///
///
///
///
private static Type GetTypeFromAssembly(string type)
{
var x = Type.GetType(type, false, true);
if (x != null)
return x;
var executingAssembly = Assembly.GetExecutingAssembly();
x = executingAssembly.GetType(type);
if (x != null)
return x;
var assNames = executingAssembly.GetReferencedAssemblies();
foreach (var name in assNames)
{
if (name.FullName.StartsWith("System", StringComparison.OrdinalIgnoreCase) || name.FullName.StartsWith("mscorlib", StringComparison.OrdinalIgnoreCase))
continue;
var assembly = Assembly.Load(name);
x = assembly.GetType(type);
if (x != null)
return x;
}
return null;
throw new TypeLoadException(string.Format(" {0} 。", type));
}