2009-04-27 66 views
1

在我的項目中,我收到了一個XmlElement,我必須將一些屬性解析爲一個類。XmlConvert和可以爲空的結果?

對於映射這些我使用XmlConvert類。但是XML的來源通常是空的節點或者不可讀的節點。而不是拋出一堆錯誤,我想要返回一個NULL來存儲在我的課堂上。

我開始做一個XmlConvertExtentions的類,它在下面的精神的東西:

public static class XmlConvertExtentions 
{ 
    public static int? ToNullableInt32 (this XmlConvert c, string s){ 
     try{ return XmlConvert.ToInt32(s); } 
     catch{ return null; } 
    } 
} 

我堅信,我不是需要這樣的功能的第一developper,我想知道如果我米沒有發明另一個輪子。
此外,我覺得我正在發明一個非常醜陋的車輪。嘗試抓住感覺不好。有沒有更好的辦法?

- 編輯 -
現在我也注意到,它甚至不工作:P
我想這是因爲你不能擴展靜態類。

回答

1

如果節點爲空或爲空,什麼是s

如何只:

if(string.IsNullOrEmpty(s)) return null; 
return XmlConvert.ToInt32(s); 

還要注意,LINQ到XML具有這些轉換的更優雅地處理(通過強制轉換)。

0

我不知道在您的案例/情況下是否可行,但您是否已經使用過XML序列化類,並將XmlSerializer類的XML直接反序列化到您的自定義類的實例中,而不是這一切手動?

+0

是的,我有。但是由於輸入可能有多種格式,並且必須完成一些自定義邏輯,所以標準序列化不起作用。除此之外,我從來沒有開箱即用的系列化工作。它真的太有限了。 – 2009-04-27 09:35:12