Itu sepenuhnya benar. "Dapatkan" (BookSleeve) mengembalikan byte[]
yang ditangguhkan . Anda telah menggunakan Wait dengan benar untuk mendapatkan byte[]
yang sebenarnya , lalu gunakan MemoryStream
di atas byte[]
ini untuk memanggil Deserialize
melalui protobuf-net.
Semuanya baik.
Jika Anda memperjelas langkah apa pun yang menurut Anda jelek, saya mungkin bisa lebih spesifik, tetapi:
- BookSleeve sepenuhnya asinkron melalui
Task
, oleh karena itu diperlukanWait
atauContinueWith
untuk mengaksesbyte[]
- protobuf-net sepenuhnya berbasis Stream, oleh karena itu diperlukan
MemoryStream
untuk duduk di atasbyte[]
Tentu saja, jika Anda menambahkan metode utilitas umum (mungkin metode ekstensi), Anda hanya perlu menulisnya sekali.
Dan dengan tambahan if kelas pembungkus (untuk beberapa pelacakan/sliding-expiry) dan cache L1 (Redis sebagai L2), ini persis seperti yang kami gunakan di stackoverflow.
Satu catatan:koneksi aman dan dimaksudkan untuk dibagikan secara massal; jangan lakukan koneksi per operasi.