更改 wsdl 以设置时间模式

发布于 2024-11-26 16:48:35 字数 260 浏览 0 评论 0原文

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

cx_sy_conversion_no_date_time xslt

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

多谢。

I have a asmx web service I created in c# which returns a DateTime value in one method. In WSDL, this value is assigned to a time type.
The client is created on a SAP system and the client fails to parse this time info, getting this error:

cx_sy_conversion_no_date_time xslt

What can be done in such a situation? The first time that comes to my mind is to change wsdl so that all time values are serialized in a way that can be parsed by the SAP client.

Thanks a lot.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

┾廆蒐ゝ 2024-12-03 16:48:36

您有 2 个选择:

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

You have 2 choices:

  1. Change client (SAP): maybe it allows some configuration
  2. Change server (.NET): send values in appropriate format, so SAP can understand them

You can extend your entity like this:

[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);
        }
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文