これが私のブロブです:
<Attributes>
<SomeStuff>...</SomeStuff>
<Dimensions>
<Weight units="lbs">123</Weight>
<Height units="in">123</Height>
<Width units="in">123</Width>
<Length units="in">123</Length>
</Dimensions>
</Attributes>
クラス メンバーの xml 属性を使用して逆シリアル化しようとしていますが、問題が発生しています。単位と値で「ディメンション」タイプを使用しようとしています。ユニットを属性として取得し、値に値を取得するにはどうすればよいですか?
これが私が試していることです:
[Serializable]
public class Attributes
{
public object SomeStuff { get; set; } // Not really...
public Dimensions Dimensions { get; set; }
}
[Serializable]
public class Dimensions
{
public Dimension Height { get; set; }
public Dimension Weight { get; set; }
public Dimension Length { get; set; }
public Dimension Width { get; set; }
}
[Serializable]
public class Dimension
{
[XmlAttribute("units")]
public string Units { get; set; }
[XmlElement]
public decimal Value { get; set; }
}
このコードは、ディメンション内に実際の「値」要素が必要であることを知っています。しかし、XmlText 以外に、要素の実際のテキストを使用するように指示できる属性デコレータが .NET ライブラリに見つかりませんが、10 進数が必要です... プロキシ フィールドが唯一のオプションですか? (例えば
[XmlText] public string Text { get; set; }
[XmlIgnore]
public decimal Value
{
get { return Decimal.Parse(this.Text); }
set { this.Text = value.ToString("f2"); }
}
ありがとう。