Mat*_*ero 6 .net c# memory io stream
根据.NET MemoryStream - 我应该设置容量吗?,如果您事先知道,最好设置MemoryStream的初始容量.
在我的代码中,我(从第三方库)收到一个Stream对象.这Stream是一个GetObjectResponse课程.
由于此类将在事务关闭后处理,我需要复制收到的流,以便我可以继续使用它.
所述Stream类公开长度属性来确定流的长度,所以,作为初始步骤,开始复制处理我开始写:
Stream destination = new MemoryStream(response.ResponseStream.Length);
Run Code Online (Sandbox Code Playgroud)
但编译器会抛出一个错误,说明MemoryStream不接受long参数,而是需要一个int.
他们为什么要这样做?
如果MemoryStream延伸Stream,这意味着它可以有一个长Length.如果它有一个long尺寸,为什么不能采取long初始容量?
我试图避免初始化没有容量的流,因为我想利用这个事实,我知道流将有多大,但构造函数似乎限制了这个愿望.
我怎样才能解决这个问题,为什么MemoryStream不能接受这个long?
MemoryStream目前不支持超过2GB的数据.这是目前的限制.它原则上不必存在.
这仅仅是未实现的功能的情况.
在当前的CLR上实现更大的流是困难的,其仅支持具有最多约int.MaxValue元素的阵列.
| 归档时间: |
|
| 查看次数: |
541 次 |
| 最近记录: |