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