この小さなコードがあるとします:
public static void LoadSomething(Type t)
{
var t1 = Type.GetType(t.AssemblyQualifiedName);
var t2 = t
.Assembly
.GetTypes()
.First(ta => ta.AssemblyQualifiedName == t.AssemblyQualifiedName);
}
t1 がnullで、 t2 が null ではないということです。そう呼ぶと困惑してしまったので…
LoadSomething(typeof(SomeObject));
どちらもnullではありませんが、私が実際に行っていることは次のようなものです(実際にはそうではありませんが、これは非常に単純化されていますが、私の要点を示しています):
LoadSomething(Assembly.LoadFile(@"C:\....dll").GetTypes().First());
だから私の質問の最初の部分(私の情報のため)は...
Type.GetType
2 番目のケースでは、アセンブリをロードする必要があり、そこから型を見つけたのに、 null が返されるのはなぜですか?
そして第二に(実際に私の問題を解決するために)...
アセンブリ修飾名を文字列としてしか持っていない場合に型をロードできる他の方法はありますか (Assembly.Load メソッドを使用して以前にロードされていることがわかっています)。