我们已经看到了许多与通过WCF返回JSON数据相关的帖子,但它们都涵盖了将对象转换为JSON然后通过属性的魔力将该对象转换为JSON的方面。 我们有一些预先格式化的JSON文件,我们希望通过WCF服务返回。基本上我们需要做的就是读取文件中的文件(或文件的缓存副本),然后将数据作为字符串返回。我认为......在JSON文件中读取,将其序列化为对象然后反序列化为JSON,这似乎很浪费..对此有何帮助?
答案 0 :(得分:0)
使用WebHttpBinding时,这就像使用Stream返回类型创建WebGet带注释的方法一样简单:
[WebGet]
public Stream GetFile(Int32 someId)
{
//your logic to lookup or create the file here.
//Open the file (a MemoryStream would be acceptible as well if you were creating the data on the fly
Stream stream = File.OpenRead(yourFilePath);
//register an event to clean up the temporary file (if necessary)
OperationContext.Current.OperationCompleted += (s, e) =>
{
File.Delete(yourFilePath);
};
return stream;
}