这是我的斑点:
<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; }
}
我知道这段代码期望维度内有一个实际的“值”元素。但是我在 .NET 库中找不到任何可以告诉它为此使用元素的实际文本的属性装饰器,除了 XmlText,但我想要一个小数......代理字段是唯一的选择吗?(例如
[XmlText] public string Text { get; set; }
[XmlIgnore]
public decimal Value
{
get { return Decimal.Parse(this.Text); }
set { this.Text = value.ToString("f2"); }
}
谢谢。