c# - 将 DateTime 发送到默认序列化的 WCF 服务

标签 c# wcf datetime serialization

所以我有以下类(class):

[DataContract]
public class Client
{
    [DataMember]
    public int ClientID { get; set; }
    [DataMember]
    public int MerchantID { get; set; }
    [DataMember]
    public string ClientName { get; set; }
    [DataMember]
    public Nullable<System.DateTime> LastPing { get; set; }
    [DataMember]
    public Nullable<System.Guid> SessionToken { get; set; }
    [DataMember]
    public System.Guid GUID { get; set; }
    [DataMember]
    public string Password { get; set; }
    [DataMember]
    public string Name { get; set; }
    [DataMember]
    public string Email { get; set; }
    [DataMember]
    public string Address { get; set; }
    [DataMember]
    public DateTime cDate { get; set; }
    [DataMember]
    public string AdditionalInfo { get; set; }

}

我在我的 WCF 上使用它是这样的: (界面)

    [OperationContract]
    [ServiceKnownType(typeof(Client))]
    void CreateClient(Client inClient);

和 WCF 实现:

    public void CreateClient(Client inClient)
    {
        try
        {
            CMSUsersManager manager = new CMSUsersManager();
            manager.CreateClient(inClient);
        }
        catch (Exception ex)
        {

        }
    }

我有另一个项目(一种网站),我正在调用该服务:

        CPanelService.CPanelService service;
        service = new CPanelService.CPanelService();
        service.CreateClient(inClient);

现在解决我的问题: 网站上的“inClient”包含inClient.cDate = DateTime.Now。 当请求发送到 WCF 时,服务收到 inClient.cDate = 1/1/001 00:00:00

我试图弄清楚,但没有运气。

谁能教教我? 谢谢。

最佳答案

为了通过线路发送属性,您必须在其 header 上方显式输入数据注释 [DataMember]:

[DataMember]
public string Email { get; set; }
[DataMember]
public string Address { get; set; }
[DataMember]
public System.DateTime cDate { get; set; }

为您的所有属性执行此操作。

并且在类头上还放置了[DataContract]:

[DataContract]
public class Client

我不确定这是否会解决您的问题,但我可以保证如果您不添加这些注释,您最终会为序列化(这似乎是您当前的问题)而头疼。

关于c# - 将 DateTime 发送到默认序列化的 WCF 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30788182/

相关文章:

php - 将 HTML 表单输入转换为 php 可以理解的日期

c# - 如何确定 SteamVR_TrackedObject 是 Vive Controller 还是 Vive Tracker

c# - 在 yield return 函数中是否可以确保在同一个线程上调用终结器?

c# - 使用线程会节省时间吗?

c# - 如何在 C# 中导入原始 RSS 提要?

c# - Linq 查询返回错误

java - 计算下一个生日日期时日期跳过一年

c# - 在覆盖 FileConfigurationProvider 时使用 System.IO.Stream 检测为不兼容的类型

c# - 是否可以隐藏继承的数据成员?

python - 将 python UTC 时间戳与字符串相互转换