سؤال

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

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

المحلول

يعد النظام المدمج القائم على RTTI لإجراء تسلسل للخصائص المنشورة عرضة للتغييرات في المكونات.يمكن التحكم في المضي قدمًا طالما تم الاحتفاظ بالخصائص القديمة في كائنات جديدة.أي.يمكنك ترك واجهة الخاصية كما هي، ولكن يمكنك التخلص من المحتويات إذا أردت.يعد الرجوع إلى الوراء أمرًا أسوأ - نظرًا لأنه لا يمكن فتح الخاصية المحفوظة للإصدار الأحدث عند تحميل الإصدار الأقدم، وستكون هذه مشكلة.

هناك مكونات / libs (http://www.torry.net/quicksearchd.php?String=RTTI&Title=Yes) يمكنه إضافة تسلسل بتنسيق XML وقد يساعد هذا قليلاً حيث يمكنك اختيار تخطي المحتوى الذي لا تعرفه.

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

نصائح أخرى

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

أفضل طريقة لضمان التوافق هي إجراء التسلسل الخاص بك.

شكرا على الرد.كنت أحاول تجنب التسلسل المخصص والاستفادة من تقنية تسلسل كل مكون، ولكن مع عدم وجود أي طريقة "لتصحيح" الترقية إلى تنسيق مكون جديد، أعتقد أن التسلسل المخصص هو الطريقة الوحيدة.

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