سؤال

هل يمكن لشخص ما أن يعطيني مثالاً حول كيف يمكنني تحويل byte[] إلى ArrayList of Hashtables باستخدام C#؟(يمثل البايت [] قائمة ArrayList الخاصة بـ Hashtables التي تم تسلسلها مسبقًا)

ملحوظة:أنا أعمل بنظام Windows Mobile، الذي لا يوفر BinaryFormatter.

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

المحلول

أيضًا، يتم تحويل ArrayList الخاص بي تلقائيًا بواسطة واجهة برمجة تطبيقات قاعدة البيانات إلى البايت[]

بصراحة، أنت ذاهب ل يملك للعثور على واجهة برمجة التطبيقات التسلسلية الفعلية المستخدمة للحصول على فرصة لإعادة بناء هذه البيانات.انه من المحتمل BinaryFormatter, ، وهو معروف بأنه غير محمول ولا يتحمل الإصدار.

اذا أنت يحتاج لتخزين البيانات كثنائية، واستخدامها على المدى الطويل (قاعدة البيانات) وبين الأنظمة الأساسية (CF)، فسيتعين عليك استخدام مُسلسِل مناسب.على سبيل المثال، شبكة بروتوبوف ستعمل من حيث المبدأ (على الرغم من أنه لن يحب غير مكتوب ArrayList, ، مفضلاً كتابته List<T> إلخ).

إذا كانت البيانات يكون المخزنة حاليا باسم BinaryFormatter, ، فإن أفضل رهان لك هو استخراجه باستخدام نظامك الحالي وإعادة تجميعه (ربما في عمود أو جدول مختلف) بتنسيق تسلسلي أكثر ملاءمة.

نصائح أخرى

عندما تقول "تم تسلسل ذلك مسبقًا" هل تقصد "تم تسلسله باستخدام BinaryFormatter"؟إذا كان الأمر كذلك، لا - سوف تحتاج BinaryFormatter لإلغاء التسلسل أيضًا.إذا كان Compact Framework لا يدعم ذلك، فلن يحالفك الحظ.أعني، إذا تم توثيق تنسيق التسلسل في مكان ما (لست متأكدًا مما إذا كان كذلك أم لا) أنت استطاع اكتب الشى الذى تريده BinaryFormatter - ولكن من المحتمل أن يكون الأمر صعبًا إلى حد ما.

بدلاً من ذلك، يجب عليك اختيار تنسيق التسلسل الذي يتم دعمه في كل مكان تحتاج فيه إلى إجراء تسلسل/إلغاء تسلسل.

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