哪种是传递List的最佳方式< DTO>在WCF中包含图像?

时间:2014-02-21 16:47:34

标签: c# wcf

我正在使用通过WCF从后端发送到前端的DTO。 我的DTO的结构是这样的:

[DataContract]
public class MyDTO
{
    [DataMember]
    public Guid Id;

    [DataMember]
    public string Image;

    [DataMember]
    public int? Version;
}

如您所见,我们将Image作为字符串处理。当我们从服务中检索字符串时,我们使用StringBuilder在UI中显示它以构建一个html部分:

keyboardHtml.Append("'<img class=\"");
keyboardHtml.Append("' src=\"");
keyboardHtml.Append("data:image/png;base64,");
keyboardHtml.Append(image.Image);
keyboardHtml.Append("\"");

如果我们将所有图像发送到一个列表中,我们需要同时获得200多张图像。 MyDTO&gt;我们得到超出最大配额的例外。

在配置文件中,绑定配置为:

maxBufferPoolSize =“524288”

maxBufferSize =“655360”

maxReceivedMessageSize = “655360”

为了避免这个错误,我们使用迭代器以20个图像块的形式调用服务:

for (int i = 0; i <= numberOfImages; i += 20)
{
    List<MyDTO> listIncomplete = communicator.SendCommand<int, List<MyDTO> ("GetImagesRange", i);
    resultList.AddRange(listIncomplete);
}

我确信这完全没有用。我想问一下:

1。)可以使用哪种数据类型代替字符串来发送图像以提高效率?

2.。)哪种其他方法可用于优化这种图像检索方式?

附加说明 - 这些图像存储在数据库中。 提前致谢。任何帮助将非常感激。

0 个答案:

没有答案