使用反射覆盖私有方法是否可以在.NET3.5中使用反射覆盖私有方法?好吧,它需要是虚拟的才能覆盖它(通过编写一个继承自该类的动态类型),并且你不能拥有私有虚拟(这没有意义)。您可以覆盖内部虚拟,但我怀疑这可能存在安全问题。所以最后,我会说不。不要只使用反射。可能您能做的最好的事情就是使用Reflection,结合Reflection.Emit或CodeDom将类复制到新的命名空间中。当您遇到要替换的私有方法时,不要复制它,而是删除替换项。但是,开发人员可以使用多种技术来增加难度。将一个类的实现分解为许多私有类或内部类就是这样做的。注意:使用CodeDom,您必须在内存中构建图形,编译它,然后加载生成的程序集。这可能比它的价值更麻烦。另一种方法是使用Reflector反汇编类,使用方法replace获取代码并从中构建自己的类。还需要克服重大的技术和法律障碍。您可以从反汇编代码中学到很多东西。不是通过使用反射。您需要使用某种AOP。TypemockIsolator应该能够做到这一点,但它是通过.NETProfilerAPI实现的(根据RoyOsherove的“TheArtofUnitTesting”)。以上就是C#学习教程:使用Reflection覆盖私有方法分享的所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
