我正在尝试从SSRS服务器读取报告, 问题是我的内存流不能超过65536字节。
到目前为止,我已尝试使用内存流,但在阅读报告本身之前尚未成功设置其容量
GetItemDefinitionResponse reportDefinition = channel.GetItemDefinition(DefinitionRequest);
MemoryStream memstream = new MemoryStream(reportDefinition.Definition);
rdlFile.Load(memstream);
上面的MemoryStream必须在读取文件之前增加容量。
我试过在我的App.config中玩,但我不知道从哪里开始能够设置内存流的字节容量
答案 0 :(得分:1)
你可以
byte[] bytes = reportDefinition.Definition;
var ms = new MemoryStream();
ms.Write(bytes, 0, bytes.Length);
通过这种方式,MemoryStream
可以调整大小。
写完后你可能应该把位置改为0:
ms.Position = 0;
但这取决于您是想在MemoryStream
上添加新数据(不要设置Position
),还是只想重新读取数据(设置Position
})。 new MemoryStream(reportDefinition.Definition)
有一个隐含的Position = 0
。
作为旁注,接受MemoryStream
的{{1}}构造函数的重载是不可调整大小的,而没有byte[]
参数的两个重载({{ 1}}和byte[]
)可以调整大小。