سؤال

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

أحتاج إلى إجراء بعض عمليات ترحيل البيانات من الإصدار القديم من التطبيق إلى الإصدار الجديد.يرجى إعلامي إذا كان هذا ممكنًا أم يجب أن أستخدم عمليتين منفصلتين.

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

المحلول 2

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

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

استضافة عملية الاتصال عن بعد (التي أسميها الخادم) مع الإصدار الجديد من التطبيق.لدى العميل البعيد مراجع للإصدار الأقدم.

يقوم العميل عن بعد بإنشاء مثيل للكائنات وتحميلها بالبيانات المطلوبة للترحيل.تحويل الكائنات القديمة إلى كائنات مشتركة قابلة للتسلسل وتمريرها كمعلمات إلى الخادم.

يستخدم Remoting Server البيانات الشائعة لإنشاء كائنات جديدة وتحميلها.يستدعي الوظائف الموجودة على الأنواع الجديدة للاحتفاظ ببياناتها.

نصائح أخرى

إذا كنت تفعل ذلك في وقت التصميم (وهو ما تشير إلى أنك لست كذلك)، فهذا من شأنه أن يساعدك:

http://blogs.msdn.com/abhinaba/archive/2005/11/30/498278.aspx

إذا كنت تفعل ذلك ديناميكيًا من خلال التفكير (كما هو الحال هنا)، فقد يساعدك ذلك:

http://infosysblogs.com/microsoft/2007/04/loading_multiple_versions_of_s.html

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