gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 15:39:17 25 4
gpt4 key购买 nike

所以我有以下类(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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com