我将几个遗留的Web服务和当前的Web服务放在同一个后端。
但我必须保持旧的Web服务与旧接口兼容。
所以我的问题:
有没有办法可以设置多个属性,例如属性?
像这样:
[XmlElement("AvailableFrom",... what I need...)]
[XmlElement("Available",... what I need...)]
public DateTime AvailableFrom{get; set;}
一种解决方案是创建额外的属性,但我真的不喜欢代码膨胀。
private DateTime _availableFrom;
[XmlElement("AvailableFrom")]
public DateTime AvailableFrom
{
get
{
return _availableFrom;
}
set
{
_availableFrom = value;
}
}
[XmlElement("Available")]
public DateTime Available
{
get
{
return _availableFrom;
}
set
{
_availableFrom = value;
}
}
答案 0 :(得分:2)
我认为没有简单的方法。
序列化将失败,因为一个属性可能有两个不同的值。 哪一个比正确的一个?
也许我的一些想法可以帮助你...
1)创建一个XSLT,将当前的xml转换为旧格式并返回。 在XSLT中,您可以以最佳方式处理不同的值。
或
2)不要使用SerialisationAttributes。为它编写自己的方法并在那里处理不同的值。
或
3)使用您的类作为基础并创建两个子类。 使用覆盖和序列化属性填充两个子类。