参数签名要和被Hook的原始方法一致,如果不一致将导致无法找到原始方法(原因:存在重载方法无法确认是哪个的问题)。
如果存在我们无法使用的参数类型的时候(如:私有类型),我们可以用object等其他引用类型代替此类型(注意不要用值类型,否则可能出现内存访问错误),并把此参数用`RememberType`进行标记:
``` C#
//目标方法:
public string SolidMethod(MyClass data, int code){...}
//我们的Hook方法:
public string MyMethod([RememberType("Namespace.xxx.MyClass")]object data, int code){...}
```
按照使用说明,可以HOOK成功含自定义类型参数的函数.但在HOOK方法中下断后,data参数值为空,无法利用这个参数作判断.
比如,在public string MyMethod([RememberType("Namespace.xxx.MyClass")]object data, int code){...}中下断,断下后参数data的类型为object,其值为空,
而步进到原始函数时,data的类型为MyClass.值为正常值.
如果想在HOOK函数中,根据data的值分别处理,而HOOK函数中data又为空.
请问该怎么处理?

