这是我关于堆栈溢出的第一个问题。所以我为我身边的任何不法行为道歉!
我必须反序列化一些XML,其中一个元素是必需的,数据类型为xs:duration。如何为可选元素执行此操作可以在http://kennethxu.blogspot.nl/2008/09/xmlserializer-doesn-serialize-timespan.html找到,我曾经构建过:
public class ValueWeightTime
{
private TimeSpan _value = new TimeSpan();
[XmlIgnore]
public TimeSpan Value { get { return _value; } set { _value = value; } }
[Required] //ToDo: fix default value PT0S
[XmlElement(ElementName = "Value", DataType = "duration")]
public string XmlValue
{
get { return XmlConvert.ToString(_value); }
set { _value = XmlConvert.ToTimeSpan(value); }
}
}
必需属性不起作用。有人知道如何制作“价值”元素吗?
答案 0 :(得分:0)
您可能正在寻找:
[DataMember(IsRequired = true)]
如果这不起作用,你可以这样做:
[XmlIgnore]
public TimeSpan Value
{
get
{
if(String.IsNullOrEmpty(XmlValue))
throw new AgrumentException("Value is required.");
return _value;
}
set { _value = value; }
}