我想开发一个WCF服务,它将接收各种XML并保存它们以供进一步处理。我不能坚持特定的数据类型,因为传入的XML将完全不同。到目前为止,我已经选择了使用Stream参数的方法:
[ServiceContract]
public interface IApiService
{
[WebInvoke(Method = "POST",
UriTemplate = "getXml",
BodyStyle = WebMessageBodyStyle.Bare)]
[OperationContract]
Stream getXml(Stream request);
}
我正在返回一些文字以供回复。该服务将由外部应用程序调用,我希望远离特定于.NET的问题。
有更好的方法吗?
答案 0 :(得分:1)
如果您收到的XML格式正确,则可以使用XElement
或XmlElement
类型作为输入和返回值。前者是WCF可以处理的IXmlSerializable
类型,后者是由WCF序列化器处理为特殊情况的类型。优点是您拥有所有XML OM来操作数据,并且将自动为您设置传出内容类型。
如果输入/输出不一定是格式良好的XML,那么您的解决方案(Stream
)是唯一可以使用的解决方案。
答案 1 :(得分:0)
如果传递的XML可以是任意的,Stream
看起来是个很好的解决方案。您也可以使用byte[]
甚至string
。