2009-04-27 10 views
1

私のプロジェクトでは、いくつかのプロパティを解析してクラスに戻す必要があるXmlElementを受け取っています。XmlConvertとnullの結果がありますか?

これらをマッピングするために、私は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; } 
    } 
} 

私は強く、私はこのような機能を必要とする最初の開発者に対しじゃないと信じていると私は「場合、私は思ったんだけどまだ別の車輪を発明していない。
さらに、私は本当に醜い車輪を発明しているように感じます。試練が悪いと感じます。より良い方法がありますか?

--EDIT--
そして今、私はまたしても動作しないことに気づいた:P
は、私はあなたが静的クラスを拡張することはできませんので、それはだと思います。

答えて

1

ノードがヌルまたは空の場合、sとは何ですか?

どのようにちょうど約:

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

も注意LINQからXMLへの(キャスト経由で)これらの変換の多くの優雅な取り扱いを持っていること。

0

あなたのケース/状況では可能かどうかわかりませんが、既にXMLシリアル化クラスを使用していますが、XMLをXmlSerializerクラスでデシリアライズしてカスタムクラスのインスタンスに直接それはすべて手動でですか?

+0

はい、あります。しかし、入力はいくつかの形式で行うことができ、カスタムロジックを実行する必要があるため、標準のシリアル化は機能しません。それに加えて、私は箱入りのシリアル化作業をしたことがありませんでした。それは本当にあまりにも限られています。 –

関連する問題