I want to create dynamic assembly with generic class:
class TestClass<T> where T : new() {
  public T TestMethod() {
    return f();
  }
  private Func<T> f;
}
So, I created class, added generic argument, set constraints and created delegate like this:
var fieldType = typeof(Func<>).MakeGenericType(TArg); 
// TArg = testClassBuilder.DefineGenericParameters("T")[0];
Then using IL generator I tried to emit calling Invoke method:
ilGenerator.Emit(OpCodes.Callvirt, fieldType.GetMethod("Invoke"));
But I get NotSupportedException on GetMethod("Invoke") call. So, how to call this delegate using Emit?
Aucun commentaire:
Enregistrer un commentaire