実行時に、インスタンスを作成するオブジェクトのタイプを見つけます。
string typeName = "myNamespace.type, assembly";
Type theType = Type.GetType(typeName);
// the type features a constructor w/o arguments:
object theInstance = Acivator.CreateInstance(theType);
これは正常に機能し、デバッガーですべての属性値を確認できます。デバッガーがリフレクションを使用していると思いますか?
また、オブジェクト型の動的にデシリアライズされたオブジェクトもあります。これは、実際には theType 型であることがわかっています。
// pseudo code on the rhs of the "="
object deserialized = decoder.decode(serializedObject.body);
リフレクションを使用して型の属性をループせずdeserialized
に、に割り当てる方法はありますか? theInstance
これは時間が重要なので、これを行う唯一の方法がリフレクションであると仮定すると、パフォーマンスの低下を最小限に抑える方法はありますか? 私はこれらのオブジェクトの多くを短時間で期待しています。
(これは .Net 3.5 であるため、Type dynamic でこれを解決できたとしても、この場合は役に立ちません)。