繁体   English   中英

我可以更改system.dll中的功能吗?

[英]Can i change a function in system.dll?

我想知道是否可以更改system.dll中的函数,而不是返回0; 我将其更改为返回-1;

并重新编译并再次使用。

如果是,我们该怎么做?

不,你不能。 您不能这样做,因为您不能用Microsoft签名强烈地签名要生成的程序集,因此引用系统程序集的所有其他程序集都会抱怨(我知道这一点,因为两周前我尝试做类似的事情:- ),但我不想重新编译。 对我而言,使用Mono.Cecil直接编辑System程序集的副本就足够了)

如果要编写单元测试,则可以使用Fakes (需要Visual Studio Premium)。 它使您可以将程序集的方法重定向到您的代码,控制输出以及该方法的作用。

从技术上讲,您可以使用伪造的“库”执行以下操作: http : //www.codeproject.com/Articles/453065/ILRewriting-for-beginners但是请注意,这很复杂。 您在C / C ++中为您的exe创建一个“运行程序”。 此“运行程序”(从技术上来说,它是CLR主机)可以“即时”重写程序集的.NET代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM