Получить контент Тип ответа WCF - PullRequest
3 голосов
/ 18 марта 2011

У меня есть клиент 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 Ответ

5 голосов
/ 18 марта 2011

Вы должны получить доступ к OperationContext или WebOperationContext. Для этого на клиенте используйте OperationContextScope:

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