私たちが知っているように、コンストラクターは次のFunc<T>
ように指定できます。
Func<MyObject> constructor = () => new MyObject();
var newObject = constructor();
しかし、 MyObject から継承されていることがわかっているが、その正確な型がわからないオブジェクトのコンストラクターを作成する方法はありますか?
Type inheritedObjectType = obj; // Parameter
Func<MyObject> constructor = () => new MyObject(); // as inheritedObjectType
var newInheritedObject = constructor; // Should now be of the inherited type
Activator
usingまたは何かを返すという答えObject
はオプションではありません。
編集:コンパイル時に派生型がどの型かわかりません。私はSystem.Type
.