c# – 使用XML调用WCF服务

我正在尝试调用WCF服务.

但是,我将请求正文作为XML文档.

所以,例如,而不是这个

ListProductsRequest request = new ListProductsRequest();
request.Query = new RootQuery();
request.Query.Product = "milk";
request.Query.Group = "dairy";

ListProductsPortType client = new ListProductsPortTypeClient();
ListProductsResponse response = client.ListProducts(request);

我想这样做:

String xml = "<Root xmlns=\"urn:ns\"><Query><Group>dairy</Group><Product>milk</Product></Query></Root>";
var request = // read in to XmlReader or XmlDocument or whatever
ListProductsPortType client = new ListProductsPortTypeClient();
var response = client.ListProducts(request);

有没有办法使用生成的代理,具有为我处理数据层安全性和传输的优势,但不使用代理对象?

谢谢,
布莱希特

最佳答案 我认为您不能调用WCF服务并传递您想要的内容.

ListProducts方法只接受ListProductsRequest对象.所以你必须创建这种对象.

String xml = "<Root xmlns=\"urn:ns\"><Query><Group>dairy</Group><Product>milk</Product></Query></Root>";
ListProductsRequest request = MappingObject(xml); 
ListProductsPortType client = new ListProductsPortTypeClient();
var response = client.ListProducts(request);

在Mapping方法中,您可以使用XML来创建ListproductRequest.

我不知道是否有另一种方法可以做到这一点.

点赞