【发布时间】:2017-08-24 03:59:14
【问题描述】:
现在我正在使用 JSON.net JsonSerializer 从我的 WCF 服务以流形式返回数据。代码是这样的:
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)]
public Stream GetJSON()
{
Dictionary<string, string> resultDict = new Dictionary<string, string>();
WebOperationContext.Current.OutgoingResponse.ContentType = "application/json; charset=utf-8";
return SerializeToJSON(resultDict);
}
public static Stream SerializeToJSON(object value)
{
MemoryStream stream = new MemoryStream();
StreamWriter writer = new StreamWriter(stream);
JsonTextWriter jsonWriter = new JsonTextWriter(writer);
JsonSerializer ser = new JsonSerializer();
ser.Formatting = Formatting.None;
ser.Serialize(jsonWriter, value);
jsonWriter.Flush();
stream.Position = 0;
return stream;
}
我想知道是否可以在某处添加 DeflateStream 并返回压缩数据。
将其直接添加到 SerializeToJSON 方法不起作用,因为我无法在将数据返回给客户端之前处理流或 WCF 关闭它们。
有什么建议吗?
【问题讨论】:
标签: c# .net wcf stream json.net