تأثير خصائص ثابتة في سياق شبكة الإنترنت
سؤال
أنا بحاجة إلى تغيير خاصية ثابتة على كائن في تطبيق ويب.يحتوي مكان الإقامة على القيمة الافتراضية التي يتم ترميز-الثابت في الكائن.إذا قمت بتغيير ثابت الملكية في Application_Start هل هذا تغيير عصا:
أ) إلى الأبد (حسنا ، حتى التطبيق هو المعاد تدويرها)
ب) حتى الكائن GC أن ثم إعادة inialised المقبل accessor
ج) يعتمد
ملاحظة أن مكان الإقامة سأكون الإعداد هو مجرد سلسلة
المحلول
نطاق المتغير الثابت هو AppDomain الخاص به.لذلك لا، لن يتم جمع البيانات المهملة - ولكن إذا تمت إعادة تدوير AppDomain (وهو ما يمكن أن يحدث بقدر لا بأس به في ASP.NET)، فسينتهي بك الأمر بمتغير ثابت "جديد" بشكل فعال.
نصائح أخرى
في تجربتي مع تطبيقات الويب لدينا هنا، الإجابة هي أ.بقدر ما أعرف، لن يتم GCed للفصل الثابت أبدًا، بل سيستمر طوال عمر العملية (في هذه الحالة، العملية العاملة لـ ASP.NET)
الذهاب) التطبيق سبيل المثال متغير
السياق تخزين الرجوع إلى httpContext.