更改wsdl以设置时间模式

时间:2011-07-25 12:17:55

标签: c# .net web-services wsdl sap

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

  

cx_sy_conversion_no_date_time xslt

在这种情况下可以做些什么?我第一次想到的是更改wsdl,以便所有时间值都以可以由SAP客户端解析的方式序列化。

非常感谢。

1 个答案:

答案 0 :(得分:-1)

您有两个选择:

  1. 更改客户端(SAP):可能允许一些配置
  2. 更改服务器(.NET):以适当的格式发送值,以便SAP可以理解它们
  3. 您可以像这样扩展您的实体:

    [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);
            }
        }
    }