2012-02-01 127 views
0

有问题的Web服务必须在SOAP XML中返回存储过程的结果。如何从WCF Web服务返回XML?

我可以从Web服务返回任何对象没问题,我甚至很熟悉从.asmx服务中序列化JSON,但我完全背离了从Web服务返回XML的概念,他的工作是检索来自存储过程的结果。这对我来说非常重要,所以任何帮助都非常感激。

谢谢。

+0

MSDN教程... http://msdn.microsoft.com/en-us/netframework/first-steps-with-wcf – Lloyd 2012-02-01 15:20:12

+0

这可能也有帮助http://stackoverflow.com/questions/8730940/wcf返回流或字符串 – kenny 2012-02-01 15:24:59

+0

我也可以推荐这本书http://www.amazon.com/RESTful-NET-Build-Consume-Services/dp/0596519206/ref=sr_1_1?ie=UTF8&qid=1328109932&sr=8 -1 – kenny 2012-02-01 15:26:03

回答

1

尝试返回一个XmlNode

[ServiceContract] 
public interface IMyService 
{ 
    ... 
    [OperationContract] 
    XmlNode MyMethod(...); 

    ... 
} 
+0

非常感谢Joe,感谢您的回复。所以假设这个服务的工作是返回一个存储过程的结果 - 这个从sql结果到XML的“转换”怎么会发生?再次感谢。 – SkonJeet 2012-02-01 15:25:45

+1

@SkonJeet - 有很多选择。最简单的方法是让OperationContract返回一个强类型的结果(例如'MyType'或'IList '),并让框架进行序列化。或者,您可以使用.NET框架中的Xml类自己生成XML,使用'IDataReader'返回的数据。 – Joe 2012-02-01 15:37:23

+0

再次感谢您的时间伴侣。所以你会说,对于我来说,编写一个将存储过程的结果提取到sqlreader中的Web服务是可以接受的(正常情况下),然后使用XML类将所有这些转换为xml?还是有更多'优雅'的方式来做到这一点? – SkonJeet 2012-02-01 15:41:52