public void TestStaticMethodRewrite() { MethodInfo methodInfo = typeof(StubHelper).GetMethod("GetMethodPointer"); MethodRewriter methodRewriter = MethodRewriter.CreateRewriter(methodInfo); DynamicMethod dynamicMethod = methodRewriter.Rewrite() as DynamicMethod; Delegate func = dynamicMethod.CreateDelegate(typeof(Func <MethodBase, IntPtr>)); Assert.AreEqual(StubHelper.GetMethodPointer(methodInfo), func.DynamicInvoke(methodInfo)); }
public void TestGetMethodPointer() { MethodInfo methodInfo = typeof(Console).GetMethod("Clear"); DynamicMethod dynamicMethod = new DynamicMethod("Method", typeof(void), Type.EmptyTypes); ILGenerator ilGenerator = dynamicMethod.GetILGenerator(); ilGenerator.Emit(OpCodes.Ret); Assert.AreNotEqual(IntPtr.Zero, StubHelper.GetMethodPointer(methodInfo)); Assert.AreNotEqual(IntPtr.Zero, StubHelper.GetMethodPointer(dynamicMethod)); }