Avatar ·

Como criar um array de bytes (byte[]) a partir de um Stream em C#?

Olá a todos! Sou um desenvolvedor C# iniciante e estou com um problema. Preciso ler todos os dados de um Stream para um array de bytes (byte[]). O Stream pode vir de diferentes fontes: arquivo, requisição de rede, MemoryStream, etc.\n\nAqui está um exemplo de código que estou tentando escrever:\n\n```csharp\npublic byte[] ReadStream(Stream stream)\n{\n // Eu sei que Stream tem Length, mas nem sempre está disponível.\n // Como ler todos os bytes corretamente?\n byte[] buffer = new byte[stream.Length]; // Erro "Stream does not support seeking"\n stream.Read(buffer, 0, (int)stream.Length);\n return buffer;\n}\n```\n\nO problema é que `stream.Length` pode lançar uma exceção `NotSupportedException` se o Stream não suportar seeking. Por exemplo, ao trabalhar com `NetworkStream` ou `GZipStr