2012-12-24 26 views
1

在gcc中,当我们指定-Wl,--wrap=function_name时,它将所有对“function_name”的调用替换为“__wrap_function_name”,并希望用户为“__wrap_function_name”提供定义。它将原始方法重命名为“__real_function_name”。C#编译器/链接器选项:CSC.exe,类似于gcc中的--wrap?

这有助于钩住源代码中的任何函数,当然如果需要的话我们可以调用真实的方法。

在C#编译器/链接器中是否有类似的选项? 我想重写托管的DLL中的一些功能。我有该DLL的源代码。 我不能使用任何可用的模拟框架,因为我的方法是内部的和非虚拟的。

回答

0

不,我不知道C#中的任何这样的特性,或者一般的微软实现。

如果你已经有源代码,你能不能适当地改变它?这听起来像你希望它比它更具扩展性 - 所以添加可扩展性可以吸引你自己。

+0

感谢您的回复!我不能改变源代码,因为我正在为低级别的API编写单元测试。我正在执行自己的钩子并进行选择性编译。 – pam