次のような動的オブジェクトのTypeを取得したいと思います。
dynamic tmp = Activator.CreateInstance(Assembly, nmspace + "." + typeName);
Type unknown = tmp.GetType();
上記を除いて、GetType()は、ラップされたオブジェクトのタイプではなく、動的オブジェクトのラッパーのタイプを返します。ありがとう!
これを行う必要があります...
Type unknown = ((ObjectHandle)tmp).Unwrap().GetType();
ちなみに、現在のアセンブリの型でActivator.CreateInstanceを呼び出すと、これは少し混乱します...
Activator.CreateInstance(typeof(Foo))
...オブジェクトはラップされず、元のコードは正常に動作します。
Activator.CreateInstanceを使用できる場合は、直接使用できます。
object tmp = Activator.CreateInstance(Assembly, nmspace + "." + typeName);
Type unknown = tmp.GetType();