嘗試使用可爲XML解析提供位置參考的excpetion類,發現了一個有趣的行爲 - 編譯器無法在使用接口的重載和需要System.Exception的重載之間進行選擇當我試圖通過XmlReader作爲參數。編譯器無法選擇接口和異常之間的過載
Detais是以下幾點:
//exception overloads:
public FilterXmlParseException(string message, Exception innerException)
: base(message, innerException) { }
public FilterXmlParseException(string message, IXmlLineInfo lineInfo) {...}
//Usage:
XmlReader reader = ...
IXmlLineInfo lineinfo = (IXmlLineInfo)reader;
//fails
throw new FilterXmlParseException("<Filter> element expected", reader);
//ok
throw new FilterXmlParseException("<Filter> element expected", lineinfo);
而且因爲它不能正確的選擇,爲什麼overload.But失敗?我們看到的XmlReader支持一個接口,它不是從System.Exception
沒有這麼簡單 真的,我用XmlTextReader.Create(sreader,readerSettings) 並返回我的XmlReader。那麼我怎麼能確定它支持線路信息? 仍然令人困惑 – 2008-10-07 14:47:06