Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Can';是否不将复杂类型发送到WCF服务?_C#_Wcf_Datacontract_Monomac - Fatal编程技术网

C# Can';是否不将复杂类型发送到WCF服务?

C# Can';是否不将复杂类型发送到WCF服务?,c#,wcf,datacontract,monomac,C#,Wcf,Datacontract,Monomac,我有一个工作的C#Web服务,在专用服务器上的IIS上运行。有一种方法可以获取会话对象(DataContract)及其在Windows客户端上的测试和工作。然而,现在我正在开发一个“Xamarin.Mac”应用程序,我需要连接到服务器,但我面临一个特定的错误 [DataContract] public class Session{ [DataMember] public string Email { get; set; } [DataMember] public

我有一个工作的C#Web服务,在专用服务器上的IIS上运行。有一种方法可以获取
会话
对象(
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; }
}
这是我试图发送的
会话

[OperationContract]
bool Login ( Session session );
这就是我正在调用的方法

但在调试时,我检查了我的
会话
对象是否已填充并设置了值。但是服务器获取
会话
对象,但该对象的所有字段都设置为空。因此,它给了我空异常

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


我可能会错过什么

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

由于这是在IIS上定义的,并且会话是处理用户会话的内置类,因此您是否尝试为自定义类使用其他名称?另外,什么是网络流量,客户端可能根本没有发送正确格式的对象,因此问题可能在客户端,而不是在您的服务中。我通过服务引用而不是本地http请求进行调用。我不知道他的回答是否正确,但取决于端点的配置,它可能使用http请求,因此您使用的是服务引用这一事实不会使他的建议无效;您应该查看网络流量并进行验证。