我正在寻找一种在运行时在3D各方托管的.NET程序集中注入(添加/替换)方法代码的方法。我正在VS2017中使用C#进行此操作。
我尝试过:
以下是对我不起作用的EasyHook代码:
"scripts": [ "../node_modules/jquery/dist/jquery.min.js" ]
in typescript file :-
import * as $ from 'jquery';
ngOnInit() {
$(document).ready(function () {
$("#demo").datepicker({
dateFormat: "yyyy-mm-dd"
});
});
}
当我尝试使用TestClass r = new TestClass();
MethodInfo originalMethodInfo = typeof(TestClass).GetMethod(nameof(TestClass.DoSomething));
IntPtr originalMethodInfoPtr = originalMethodInfo.MethodHandle.GetFunctionPointer();
MethodInfo replacementMethodInfo = typeof(Program).GetMethod(nameof(Program.DoSomething));
IntPtr replacementMethodInfoPtr = replacementMethodInfo.MethodHandle.GetFunctionPointer();
//Create hook
using (LocalHook hook = EasyHook.LocalHook.CreateUnmanaged(originalMethodInfoPtr, replacementMethodInfoPtr, IntPtr.Zero))
{
hook.ThreadACL.SetInclusiveACL(new int[1]);//Enable hook
r.DoSomething();//Call original method, expecting replacement method to be called
Console.ReadKey();
}
时遇到EasyHook.LocalHook.Create
异常。
我正在寻找有关如何使EasyHook正常工作的任何想法,或寻求一些替代方法来实现托管挂钩。