Memory stream is not expandable

Encore une fois, j’exhume un vieux code pour résoudre un problème courant… et surtout pour faire simple là où je vois des codes « qui font peur ».

Dans le cas présent, il s’agit de répondre à un message d’erreur qui arrive lorsque l’on veut modifier une Stream initialisée à partir d’un tableau de Bytes :

Memory stream is not expandable.

Ceci vient du fait que la Stream est marquée comme « non modifiable » lors de l’instanciation de la Stream. Certains préfèreront passer pas une Stream Custom, alors que la solution est simple :

Il suffit de passer par le constructeur par défaut puis d’ajouter le tableau de Bytes.

Le code :

// Code en erreur
Byte[] data= ... ;
MemoryStream stream = new MemoryStream(data, true);

Devient donc :

// Bon code
Byte[] data = ... ;
MemoryStream stream = new MemoryStream();
stream.Write(data, 0, data.Length);

Voila, simple et efficace ;)

Jérémy Jeanson

Comments

You have to be logged in to comment this post.