我使用BitFactory記錄,暴露出這樣的一堆方法:強制我的代碼使用我的擴展方法
public void LogWarning(object aCategory, object anObject)
我有一個擴展方法,使我們更好的日誌記錄這一點需求:
public static void LogWarning(this CompositeLogger logger,
string message = "", params object[] parameters)
剛剛包紮一些常見的伐木作業,並意味着我可以登錄像:
Logging.LogWarning("Something bad happened to the {0}. Id was {1}",foo,bar);
但是,當我在我的params object[]
中只有一個字符串時,我的擴展方法將不會被調用,而是選擇原始方法。
除了命名我的方法別的,有沒有辦法阻止這種情況發生?
類方法始終優先通過擴展方法,所以我會說不。但也許有人知道一些解決方法。 – Gorpik
擴展方法(帶有類似命名的非擴展方法),可選參數,*和*'params'都在一個方法中?你喜歡混淆編譯器,不是嗎? –