在用作web引用而非用作服务引用时,在wcf服务中重置日期时间值

本文关键字:引用 服务 时间 日期 web wcf | 更新日期: 2023-09-27 18:27:38

我有一个WCF服务,操作如下:

    public void setNotifications(List<AnnouncementDataContract> announcements)
    {
        foreach(AnnouncementDataContract item in announcements)
        {
            ent.InsertAnnouncements(item.Anc_Text, item.Anc_Date);
        }
    }

当我在MVC应用程序中添加这个WCF服务作为Web引用并调用如下方法时:

       MyService.Service1 proxy = new MyService.Service1();
       Collection<MyService.AnnouncementDataContract> dc = new 
                              Collection<MyService.AnnouncementDataContract>();
        MyService.AnnouncementDataContract dc1 = new              
        MyService.AnnouncementDataContract();
        dc1.anc_Date = System.DateTime.Now;
        dc1.anc_Text = "Announcement1";
        dc.Add(dc1);
        proxy.setNotifications(dc.ToArray());

服务操作中"announces"的每个项中的值都被重置,我将其作为min-datetime值获取,而不是我在调用操作时从MVC应用程序发送的值。

但是,当我在MVC应用程序中添加这个WCF服务作为服务引用并调用该操作时,它运行良好,并且在服务中获得了正确的日期时间值。

在用作web引用而非用作服务引用时,在wcf服务中重置日期时间值

我刚刚遇到了同样的问题。这是因为为AnnouncementDataContract类生成的代理代码还创建了一个名为Anc_DateSpecified的属性,该属性必须设置为true。所有值类型都是这种情况。