我有一个网站在我的GET请求中给我这个xml响应:
<ServerUnits>
<State Name="ServerName" Date="2008-04-01" >
<Users>
<User login="someUser1" Password="123456">
<User login="someUser2" Password="qwerty">
</Users>
</ServerUnits>
我想使用WCF客户端来使用此服务。 如何为WCF Clien删除此响应的消息合同
答案 0 :(得分:0)
您发布的内容不是SOAP消息,因此MessageContract
不合适。
我想你发布的是SOAP主体内容,所以你需要做一些事情:
[DataContract]
public class ServerUnits
{
[DataMember]
public ServerState State { get; set; }
[DataMember]
public List<User> Users { get; set; }
}
[DataContract]
public class ServerState
{
[DataMember]
public string Name { get; set; }
[DataMember]
public DateTime Date { get; set; }
}
[DataContract]
public class User
{
[DataMember]
public string login { get; set; }
[DataMember]
public string password { get; set; }
}
您的消息不是SOAP。但是,如果使用发送和接收POX的webHttpBinding
,您仍然可以使用上面的代码。
答案 1 :(得分:0)
我认为WCF对你来说没用。
更简单的方法是编写与此xml响应匹配的对象,并将xml流反序列化为对象实例。
答案 2 :(得分:0)
最好为WCF服务创建客户端代理。它将为您创建数据合同(如@Aliostad所述),因此您无需手动创建它们。要执行此操作,请右键单击您的解决方案,然后从上下文菜单中选择“添加服务引用...”,并输入WCF服务的地址。