获取内容WCF响应的类型

时间:2011-03-18 10:36:00

标签: c# wcf http mime

我有一个从服务器下载内容的WCF客户端。

服务合同是;

[OperationContract]
        [WebGet(
                UriTemplate = "/my/service/url/{method}/{filename}?tradeId={tradeId}&docType={docType}&language={language}&version={version}",
                ResponseFormat = WebMessageFormat.Json,
                BodyStyle = WebMessageBodyStyle.Bare)]
        Stream GetDocument(string method, string filename, string tradeId, string docType, string version, string language);

返回类型是Stream。我所做的只是将该流写入文件并且可以正常工作。

现在,我想对此进行修改。我想知道下载文档的MIME类型。我知道它在服务器上设置正确。我只需要检索它。

我对WCF没什么经验,也不知道怎么做。有人可以告诉我吗?

非常感谢

1 个答案:

答案 0 :(得分:5)

您必须能够访问OperationContextWebOperationContext。要在客户端上实现此目的,请使用OperationContextScope

using (var scope = new OperationContextScope((IContextChannel)proxy))
{
    Stream document = proxy.GetDocument(...);
    string contentType = WebOperationContext.Current.IncomingResponse.ContentType;
}