This topic has not yet been rated - Rate this topic

MemoryStream.GetBuffer Method

Returns the array of unsigned bytes from which this stream was created.

Namespace:  System.IO
Assembly:  mscorlib (in mscorlib.dll)
public virtual byte[] GetBuffer()

Return Value

Type: System.Byte[]
The byte array from which this stream was created, or the underlying array if a byte array was not provided to the MemoryStream constructor during construction of the current instance.
Exception Condition
UnauthorizedAccessException

The MemoryStream instance was not created with a publicly visible buffer.

Note that the buffer contains allocated bytes which might be unused. For example, if the string "test" is written into the MemoryStream object, the length of the buffer returned from GetBuffer is 256, not 4, with 252 bytes unused. To obtain only the data in the buffer, use the ToArray method; however, ToArray creates a copy of the data in memory.

The buffer can also be null.

To create a MemoryStream instance with a publicly visible buffer, use MemoryStream, MemoryStream(Byte[], Int32, Int32, Boolean, Boolean), or MemoryStream(Int32). If the current stream is resizable, two calls to this method do not return the same array if the underlying byte array is resized between calls. For additional information, see Capacity.

Note Note:

This method works when the memory stream is closed.

Silverlight

Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

XNA Framework

Supported in: Xbox 360, Windows Phone OS 7.0

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ
HEALTH WARNING! You probably really want to use ToArray()
Don't skim read the blurb above. There's an important point about unused bytes. GetBuffer will get the entire buffer, including the empty legroom elements at the end. You won't realise this until you deserialize it and get hit with all sorts of problem dealing with a gazillion nulls.