我正在使用 JSON 格式运行 WCF Web 服务,如下所示。我的问题是响应格式是 Json 或 XML,但对于 GetImage 我想将图像返回为 mime-type image-png。知道如何在 WCF 中执行此操作吗?提前致谢。
[ServiceContract]
public interface IEditor
{
[OperationContract]
[WebInvoke(Method = "GET", UriTemplate = "/GetImage", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]
byte[] GetImage();
[OperationContract]
[WebInvoke(Method = "GET", UriTemplate = "/GetBounds", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]
void GetBounds(out Rectangle bounds, out Point[] viewport);
最佳答案
使用
WebOperationContext.Current
返回
流
你的方法应该是这样的
[OperationContract]
[WebInvoke(Method = "GET", UriTemplate = "/GetImage", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]
public Stream GetImage()
{
var m = new MemoryStream();
//Fill m
// very important!!! otherwise the client will receive content-length:0
m.Position = 0;
WebOperationContext.Current.OutgoingResponse.ContentType = "image/png";
WebOperationContext.Current.OutgoingResponse.ContentLength = m.Length;
return m;
}
关于C# WCF JSON WebService 返回 mime 类型 image/png,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18714256/