有沒有辦法覆蓋第三方庫中的私有方法?覆蓋第三方庫的私有方法
,比如我有像這樣一類:
// 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()'?也許你可以創建派生類,也許你可以創建自己的文件版本,如果你不告訴我們你想做什麼,我們不知道你可以做什麼。假設這個問題的答案是「你不能這樣做,你需要找到別的東西」,在你的下一個問題的主體中加入你想寫的內容:「我正在努力做,但不能編輯第三方課堂,我應該接下來要做什麼?「作爲對這個問題的編輯。 –