IsolatedStorage، الذي يحاول إظهار مستويات العزل المختلفة - لا يمكنه عزل المجال

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

سؤال

لقد قمت بتحرير هذا وتقليصه لمحاولة إغلاقه لأن الموقع يطالبني بقبول إجابة أو إضافة مكافأة.

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

لقد ساعدني Preet في ضبط تجربتي وانتهى بي الأمر بمشكلتين مختلفتين قليلاً:

  • عندما قمت بنسخ تطبيق وحدة التحكم إلى دليل آخر (بحيث ظل الاسم كما هو)، حصلت على متجرين للمستخدم/التجميع، أي.واحدة لكل نسخة عندما توقعت مشاركتهم

  • عندما قمت بتحميل مكتبتي في مجالات متعددة داخل تطبيق وحدة التحكم، ظلوا جميعًا يستخدمون نفس متجر المستخدم/التجميع/المجال عندما توقعت عدم مشاركتهم

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

لذلك قمت بنقل إجابتي هنا وأحتاج الآن فقط إلى شخص ما لإضافة بعض التعليقات المفيدة إما للتأكيد أو التصحيح حتى أتمكن من قبولها وأعلم أن هذا سيكون مفيدًا بالفعل لأي شخص آخر يرغب في فهم التخزين المعزول بشكل أفضل:

ممكن جواب للسؤال الأول:

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

إجابة محتملة للسؤال الثاني (أقل يقينًا حول هذا السؤال):

يقتصر النطاق الذي يتم إرجاعه بواسطة GetUserStoreForDomain على الجهاز والمستخدم والتطبيق والتجميع، وتحديدًا ذلك التجميع الذي يعمل ضمن تطبيق معين.

لقد أنشأت تجربتي عدة مجالات إضافية ولكنها جميعها في نفس التطبيق.لذلك، فإنهم جميعًا يستخدمون نفس مخزن المجال.

لذلك، لمحاكاة عزل المجال، أحتاج بالفعل إلى الرجوع إلى المكتبة من تطبيقين مختلفين لوحدة التحكم.

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

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

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

المحلول

يمكنك إنشاء مجالات تطبيقات متعددة في برنامج/عملية واحدة.داخل مجال التطبيق يمكنك تحميل التجميع.استدعاء الأساليب في كل مجال/تجميع التطبيق

هناك أمثلة هنا (مجالات التطبيق) و هنا (هوية التجميع) و هنا

نصائح أخرى

يمكنك إنشاء مجالات تطبيقات متعددة في برنامج/عملية واحدة.داخل مجال التطبيق يمكنك تحميل التجميع.استدعاء الأساليب في كل مجال/تجميع التطبيق

هناك أمثلة هنا

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