public Delegate CreateDelegate(Type delegateType, object target) { var dynamicType = typeBuilder.CreateType(); assemblyBuilder.Save(fileName); AssemblyAssert.IsValidAssembly(outputPath); MethodInfo methodInfo = dynamicType.GetMethod("DynamicMethod", BindingFlags.Static | BindingFlags.Public); return(Delegate.CreateDelegate(delegateType, target, methodInfo)); }
public Delegate CreateDelegate(Type delegateType) { var dynamicType = typeBuilder.CreateType(); assemblyBuilder.Save(fileName); Console.WriteLine("Saving file " + fileName); AssemblyAssert.IsValidAssembly(outputPath); MethodInfo methodInfo = dynamicType.GetMethod("DynamicMethod", BindingFlags.Static | BindingFlags.Public); return(Delegate.CreateDelegate(delegateType, methodInfo)); }
public Func <object[], object> CreateDelegate() { methodBuilder.GetILGenerator().Emit(OpCodes.Ret); var dynamicType = typeBuilder.CreateType(); assemblyBuilder.Save(fileName); Console.WriteLine("Saving file " + fileName); AssemblyAssert.IsValidAssembly(outputPath); MethodInfo methodInfo = dynamicType.GetMethod("DynamicMethod", BindingFlags.Static | BindingFlags.Public); return((Func <object[], object>)Delegate.CreateDelegate(typeof(Func <object[], object>), methodInfo)); }