我被要求对如何创建一个允许客户通过Web服务将XML文档传输给我们的Web服务进行一些研究。
我打算使用WCF并使用XmlElement输入参数,但我不知道这是否是最佳做法。
有人可以推荐一些在线资源来查看或有任何建议吗?
感谢。
答案 0 :(得分:1)
我不会转发XmlElement
(甚至假设它可以在你的合同中编组,我从来没有尝试过类似的东西,你只会在计算和带宽方面产生无用的开销)。
XML文档是纯文本(然后XML片段也是文本),因此最好的选择是使用简单的System.String
参数。
当然,字符串可能并不总是最好的解决方案,例如,我正在考虑一个大的XML文档。在这种情况下,我会使用System.IO.Stream
。开始here from MSDN并阅读this for an example。
总结一下(来自上面链接的代码)声明你的合同是这样的:
[MessageContract]
public class UploadFileRequest
{
[MessageHeader]
public string fileName;
[MessageBodyMember]
public Stream fileContents;
}
[ServiceContract]
public interface IFileDownloader
{
[OperationContract]
Stream DownloadFile(string fileName);
[OperationContract]
void UploadFile(UploadFileRequest request);
}