Używanie Delegata do wywoływania konstruktora
znalazłemto ale próbował go użyć i nie powiodło się.
Jak mogę utworzyć obiekt za pomocą odbić i szybko go wykonać, umieszczając go w delegacie?
DynamicMethod dm = new DynamicMethod("MyCtor", t, new Type[] { });
var ctor = t.GetConstructor(new Type[] { });
ILGenerator ilgen = dm.GetILGenerator();
ilgen.Emit(OpCodes.Ldarg_0);
ilgen.Emit(OpCodes.Newobj, ctor);
ilgen.Emit(OpCodes.Ret);
var d = (Func<T>)dm.CreateDelegate(t);
dm.Invoke(null, new object[] { });
Przed oddaniem go do użytku starałem się go przynajmniej wywołać, a gdy to zrobiłem, otrzymałem błąd
An unhandled exception of type 'System.Reflection.TargetInvocationException' occurred in mscorlib.dll
Dodatkowe informacje: Cel wywołania został zgłoszony przez wyjątek.
Jeśli zamiast tego wywołam d (), otrzymuję wyjątek
An unhandled exception of type 'System.ArgumentException' occurred in mscorlib.dll
Additional information: Type must derive from Delegate.
Jak umieścić konstruktora bez param w delegacie i zadzwonić?