属性としてXMLにシリアル化できるようにしたい多数のNullable<T>プロパティを持つクラスがあります。これらは「複雑なタイプ」と見なされるため、これは明らかにノーノーです。したがって、代わりに* Specifiedパターンを実装し、次のように追加の*Valueおよび*Specifiedプロパティを作成します。
[XmlIgnore] public int?年 {{ get {return this.age; } set {this.age = value; } } [XmlAttribute( "Age")] public int AgeValue {{ get {return this.age.Value; } set {this.age = value; } } [XmlIgnore] public bool AgeValueSpecified {{ get {return this.age.HasValue; } }
これは正常に機能します-'Age'プロパティに値がある場合、それは属性としてシリアル化されます。値がない場合は、シリアル化されません。
問題は、私が述べたように、私のクラスには多くのNullable-があり、このパターンは物事を厄介で管理不能にしているだけです。
NullableをよりXmlSerializerに適したものにする方法があることを願っています。または、それが失敗した場合は、Nullable置換を作成する方法です。
誰かが私がこれを行う方法について何かアイデアがありますか?
ありがとう。