在servicestack模型中包含图像

时间:2013-04-19 17:10:32

标签: servicestack

我正在寻找将图像包含到服务堆栈模型中的好策略(如果可能的话)。我搜索过示例或提示,但没有太多运气。

这样的东西
class House
{
    string Address;
    //Image could be anything as long as it can be returned and viewed as a picture in a  
      browser.     
    Image Picture;
}

这可以作为响应的一部分返回并正确显示吗?

1 个答案:

答案 0 :(得分:2)

将二进制blob数据直接包含在DTO有效负载中并不是一个好主意。

以二进制格式发送二进制数据

唯一有意义的格式是使用ServiceStack's支持ProtoBufMessage Pack格式的二进制格式,这些格式不会因为编码二进制数据而使您受到惩罚。在这种情况下,您可以将图像序列化为DTO上的byte[]属性。如果您尝试以文本格式执行此操作,则需要使用类似Base64的格式对二进制数据进行编码,不必要地增加有效负载并增加计算开销。

将网址嵌入到图片或二进制文件中

建议的方法是将图像直接嵌入DTO中,而不是仅包含引用图像的Url。 ServiceStack非常支持返回原始二进制或文本数据,您只需返回任何byte[]ImageStreamIStreamWriter,原始strings等,它将按预期序列化它们。

ServiceStack支持原始二进制或文本响应

在新的Image Resizer imgur.servicestack.netRestFiles示例演示中可以看到一个很好的例子。

以下是有关维基上的自定义HTTP响应的更多信息: