获取内容 WCF 响应的类型

发布于 2024-10-23 15:12:53 字数 650 浏览 7 评论 0原文

我有一个从服务器下载内容的 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 缺乏经验,不知道该怎么做。有人可以告诉我吗?

非常感谢

I have a WCF client that download content from the server.

the service contract is;

[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);

The return type is a Stream. What I do is simply just write that stream to a file and it works.

Now, I want to make modification on this. I want to know the MIME type of the downloaded document. I know it is set properly on the server. I simply need to retrieve it.

I have little experience with WCF and don't know how to do that. Can someone let me know?

Many thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

流绪微梦 2024-10-30 15:12:53

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

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

You must get access to OperationContext or WebOperationContext. To achieve that on a client use OperationContextScope:

using (var scope = new OperationContextScope((IContextChannel)proxy))
{
    Stream document = proxy.GetDocument(...);
    string contentType = WebOperationContext.Current.IncomingResponse.ContentType;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文