更改WSDL以设置时间模式

本文关键字:时间 模式 设置 WSDL 更改 | 更新日期: 2023-09-27 18:03:17

我有一个用c#创建的asmx web服务,它在一个方法中返回一个DateTime值。在WSDL中,这个值被分配给一个时间类型。客户端是在SAP系统上创建的,客户端无法解析此时间信息,得到以下错误:

cx_sy_conversion_no_date_time xslt
在这种情况下我们能做些什么呢?我想到的第一个方法是修改wsdl,使所有的时间值以一种SAP客户端可以解析的方式序列化。

更改WSDL以设置时间模式

你有两个选择:

  1. 更改客户端(SAP):也许它允许一些配置
  2. 更改服务器(.NET):以适当的格式发送值,以便SAP能够理解它们

你可以这样扩展你的实体:

[DataContract]
public class Entity
{
    private const string YourOwnFormat = "dd.MM.yyyy";
    public DateTime DateTime
    {
        get;
        set;
    }
    [DataMember(Name = "DateTime")]
    private string DateTimeString
    {
        get
        {
            return DateTime.ToString(YourOwnFormat, CultureInfo.InvariantCulture);
        }
        set
        {
            DateTime =
                DateTime.ParseExact(value, YourOwnFormat, CultureInfo.InvariantCulture);
        }
    }
}