1

我将几个旧的 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;
        }
    }
4

1 回答 1

2

我认为你没有简单的方法。

序列化将失败,因为一个属性可能有两个不同的值。哪一个比正确的?

也许我的一些想法可以帮助你...

1) 创建一个 XSLT 将当前 xml 转换为旧格式并返回。在 XSLT 中,您能够以最佳方式处理不同的值。

或者

2) 不要使用序列化属性。为它编写你自己的方法并在那里处理不同的值。

或者

3)使用您的类作为基础并创建两个子类。用覆盖和序列化属性填充两个子类。

于 2009-03-14T14:30:50.917 回答