我們的框架建立起來的,其API是這樣的:.NET反序列化 - 返回多種類型
T Deserialize<T>(string to deserialize)
{
// XmlSerializer(typeof(T))
// deserialize and return
}
我們已經通過它的東西,如:
[XmlRoot("apple")]
public class Apple
{
[XmlElement("Id")]
public int AppleId { get; set; }
}
這個偉大工程的時候,我們返回一個蘋果,但是,有時我們會得到「notAnApple」。所以我要麼得到「蘋果」或「不是蘋果」。當我得到「notAnApple」時,我得到一個異常。
因爲我們有很多解決此方法編譯後的代碼,我寧願不要去改變周圍的東西,如方法簽名。然而,我確實有足夠的靈活性將我喜歡的任何課程傳遞給這種反序列化方法。
什麼是你想解決?你想拒絕'notAnApple'的實例嗎?你想要捕捉異常?你想找到一種方法來正確反序列化'notAnApple'? – mellamokb 2012-07-26 17:33:24
如果類型是水果,你應該能夠處理蘋果和桔子 – 2012-07-26 17:34:44
如果你傳遞的數據將被反序列化爲「notAnApple」,你想要「Apple」,那麼解決這個問題的唯一方法就是不要傳入數據將反序列化爲「notAnApple」。 – 2012-07-26 17:34:52