public void SetWriterMethod(Type type, DynamicMethod method) { if (writers[type] != null) { throw new InvalidOperationException(); } writers[type] = new CompiledDynamicMethod { Method = method, Index = writers.Count }; }
public void Invoke_StaticMethod_PassesArgumentsAndReturnsReturnValue(string message) { var method = new DynamicMethod("Test", typeof(string), new[] { typeof(string) }); var generator = method.GetILGenerator(); generator.Emit(OpCodes.Ldarg_0); generator.Emit(OpCodes.Ret); var subject = new CompiledDynamicMethod <string>(method); var result = subject.Invoke(new object[] { message }); Assert.AreEqual(message, result); }
public void Invoke_StaticMethod_PassesArgumentsAndReturnsReturnValue(string message) { var method = new DynamicMethod("Test", typeof(string), new[] { typeof(string) }); var generator = method.GetILGenerator(); generator.Emit(OpCodes.Ldarg_0); generator.Emit(OpCodes.Ret); var subject = new CompiledDynamicMethod<string>(method); var result = subject.Invoke(new object[] { message }); Assert.AreEqual(message, result); }