タイトル | : Deserialize で未設定値とそれ以外を区別する方法 |
記事No | : 11532 |
投稿日 | : 2015/11/25(Wed) 21:19 |
投稿者 | : たかし |
#あいまいな説明になってしまうかもしれませんが、ご容赦ください。
<SampleClass 〜〜〜〜〜> <Person> <Name>たかし</Name> <Year>17</Year> </Person> <Person> <Name>よーこ</Name> </Person> <Person> <Name>たろう</Name> <Year>0</Year> </Person> <SampleClass>
Name は必須。 Year は任意項目のようなイメージです。 これを Deserialize で以下のクラスに読み込みます。
Public Class Sample <〜〜〜〜 Public Person As List(Of Person) End Class
Public Class Person Public Name As String Public Year as Integer End Class
そうした場合、よーこの Year は未定義なので、 読み込んだ際も未定義(を表すような値 Nothing など)にさせたいのですが、 Integer 型を使用している為にデフォルト値 0 となってしまいます。 (当然と言えば当然かもしれませんが…) 結果として、上記 xml の場合に、よーこもたろうも 0 となってしまいます。
このような場合に、数値を扱う際に xml上、未定義なのか、あるいは本当にゼロという値が定義されているのか 区別する良い方法はありませんでしょうか?
|