WCF操作からカスタムクラスを返す。使用されるバインディングはnetTcpです。このカスタムクラスには、いくつかのデータメンバーが含まれています。それらの1つはデータセットです。特定のアクションによっては、データセットが大きくなることがあります。データセットをバイトに圧縮し、カスタムクラスを返す予定です。データセットからbyte []を取得して圧縮する
私はデータセットから圧縮されたバイトを返すために次のコードを読んでいます。しかし、これが最善の方法(または正しい方法)であるかどうかは分かりません。あなたの思考はpls。 ??
byte[] bytes = null;
byte[] compressedBytes = null;
using(var memory = new MemoryStream())
{
var formatter = new BinaryFormatter();
formatter.Serialize(memory, ds);
bytes = memory.ToArray();
}
using(var memory = new MemoryStream())
{
using(var gzip = new GZipStream(memory, CompressionMode.Compress, true))
{
gzip.Write(bytes, 0, bytes.Length);
compressedBytes = memory.ToArray();
}
}
return compressedBytes;