我正在尝试调用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.
我不知道是否有另一种方法可以做到这一点.