それは完全に正しいです。 「Get」(BookSleeve)は遅延したbyte[]を返します 。実際のbyte[]を取得するためにWaitを正しく使用しました 、次にMemoryStreamを使用しました このbyte[]を介して Deserializeを呼び出す protobuf-net経由。
すべて良い。
あなたが醜いと思うステップを明確にすれば、私はもっと具体的にすることができるかもしれませんが:
- BookSleeveは
Taskを介して完全に非同期です 、したがって、Waitのいずれかが必要です またはContinueWithbyte[]にアクセスするには - protobuf-netは完全にストリームベースであるため、
MemoryStreamが必要です。byte[]の上に座る
もちろん、汎用ユーティリティメソッド(おそらく拡張メソッド)を追加する場合は、一度だけ記述する必要があります。
また、ラッパークラス(一部のトラッキング/スライディング有効期限用)とL1キャッシュ(L2としてのRedis)の追加により、これはスタックオーバーフローでの使用方法とほぼ同じです。
注:接続はスレッドセーフであり、大規模に共有されることを目的としています。操作ごとに接続を行わないでください。