هل تم إنشاء Protobuf-net ثنائيًا متوافقًا مع مواصفات Google

StackOverflow https://stackoverflow.com/questions/2607287

  •  25-09-2019
  •  | 
  •  

سؤال

في الواقع ، أرغب في إجراء تسلسل لبيبياتي باستخدام تنفيذ جافا من Google ثم تخلص من استخدام C#؟
لقد اخترت Protobuf-Net لأنه يبدو أنه أكثر استقرارًا (لا يزال Proto# v0.9 أو كنت سأذهب إليه). قبل أن أبدأ العمل على ذلك ، أردت أن أتأكد من أنه يمكنني تحقيق ذلك (تسلسل البيانات باستخدام تنفيذ Java وإهانةها باستخدام Protobuf-Net). أم أن هناك أي قائمة بالطرق الخاصة بتنفيذ Protobuf-Net؟

هل كانت مفيدة؟

المحلول

إذا كنت تريد نفس واجهة برمجة التطبيقات على منصات متعددة ، تنفيذ جون سكيت قد يكون أكثر ملاءمة لك. الفرق هو أن Protobuf-Net مصمم حول أنماط تطوير C# Common DataContractSerializer, XmlSerializer, ، إلخ) - ويدعم بعض مفاهيم BCL مباشرة.

يجب أن يكون الاثنان متوافقين بنسبة 100 ٪ على السلك ، ولكن هنا بعض API اختلافات:

  • الدعم المباشر ل DateTime, TimeSpan, Guid الخ (الموصوفة في العقود في bcl.proto في الرمز البريدي)
  • دعم الميراث (تم تعيينه كبيانات متداخلة على السلك)
  • دعم الأنواع الخاصة بك
  • الدعم ل متقلب الأنواع (بدلاً من باني/زوج غير قابل للتغيير)
  • دعم عروض التراجعات التسلسلية
  • (ربما عدد قليل من الآخرين - هل تحتاج إلى قائمة كاملة بنسبة 100 ٪؟)

الشخص الذي من المرجح أن تلاحظه هو الميراث. ببساطة: لا تستخدم هذا إذا كنت تخطط لاستخدام interop. لقد حاولت أن تجعل الأمر واضحًا للغاية في The Intellisense إذا كنت تفعل شيئًا سيستخدم. NET محددًا ، ولكن إذا بدأت من a .proto ، فلن يستخدم هذه على أي حال (يجب أن تكون صديقة للحمور).

نصائح أخرى

جميع التسلسلات في Google متوافقة مع الأسلاك ، وعلى الرغم من أن Protobuf-Net لم يكتب بواسطة Google ، فإنه يدعي أنه متوافق مع الأسلاك.

بالإضافة إلى ذلك ، هناك صفحة من واجهات برمجة التطبيقات C# متوافقة مرتبطة من وثائق Google.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top