可以';t将复杂类型发送到WCF服务

本文关键字:WCF 服务 类型 复杂 可以 | 更新日期: 2023-09-27 18:29:56

我有一个在专用服务器上的IIS上运行的C#Web服务。有一种方法可以获取Session对象(DataContract),并在Windows客户端上对其进行测试和工作。然而,现在我正在开发一个"Xamarin.Mac"应用程序,我需要连接到服务器,但我遇到了一个特定的错误。

[DataContract]
public class Session{
    [DataMember]
    public string Email { get; set; }
    [DataMember]
    public string Password { get; set; }
    [DataMember]
    public string ComputerHash { get; set; }
    [DataMember]
    public string Ip { get; set; }
}

这是我要发送的Session类。

[OperationContract]
bool Login ( Session session );

这就是我正在调用的方法。

但在调试时,我检查了Session对象是否已填充,并且值是否已设置。但服务器获取Session对象,但该对象的所有字段都设置为null。因此,它给了我一个无效的例外。

有趣的是,发送非复杂对象没有任何问题,但这些复杂类型让我头疼。

我在这里可能缺少什么?

可以';t将复杂类型发送到WCF服务

这取决于您提出请求的方式。您需要将数据"发布"到服务器。数据需要在消息正文中定义,而不是作为请求url中的参数。