有没有办法覆盖第三方库中的私有方法?覆盖第三方库的私有方法
,比如我有像这样一类:
// Decompiled source
public class Calculator{
protected override Status Execute(){
this.Calculate();
...
return Status.Ok;
}
private int Calcualte(){
// need to overwrite this method
}
}
有没有办法覆盖计算()方法?
原因: 内计算()方法,我需要修改一些逻辑
你可以,但它是一个真正的PITA(它可能会涉及[IL重写](http://www.mono-project.com/docs/tools+libraries/libraries/Mono.Cecil/faq /))。你确定你确实需要这样做吗?这听起来像一个[XY问题](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem),可能有一个更简单的方法来实现相同的最终目标。也许可以解释你想要做什么,覆盖私人方法是解决这个问题的方法吗? –
重复:http://stackoverflow.com/questions/1451787/overriding-a-private-method-with-reflection – devundef
你误会了我的观点。你在做什么,需要你修改逻辑'Calculate()'?也许你可以创建派生类,也许你可以创建自己的文件版本,如果你不告诉我们你想做什么,我们不知道你可以做什么。假设这个问题的答案是“你不能这样做,你需要找到别的东西”,在你的下一个问题的主体中加入你想写的内容:“我正在努力做,但不能编辑第三方课堂,我应该接下来要做什么?“作为对这个问题的编辑。 –