我正在使用WCF构建一些REST Web服务。我有一些POST服务,我在其中传递包装的HTTP正文中的对象列表,如下所示:
[OperationContract]
[WebInvoke(
Method = "POST",
UriTemplate = "DoSomething/pages?term={term}",
BodyStyle = WebMessageBodyStyle.Wrapped)
]
MyResponseContainer DoSomethingFromPages(string term, List<Page> pages);
这很好用。我可以将List<Page>
包装成JSON或XML并将其放入正文中,然后自动反序列化。
以类似的方式,我有另一个服务,我从HTTP正文中读取二进制流(文件),如下所示:
[OperationContract]
[WebInvoke(
Method = "POST",
UriTemplate = "DoSomething/upload?term={term}",
BodyStyle = WebMessageBodyStyle.Bare)
]
MyResponseContainer DoSomethingUploadFile(Stream httpBody, string term);
现在我的问题是:我可以以某种方式结合两种方式吗?所以基本上我想传递一个自定义对象列表和一个(文件)流。我想避免使用多部分表单样式。
非常感谢!