سؤال

... لا شيء مطلقا؟

أي جزء من اللغز الذي تملأه asp.net webforms. و ASP.NET MVC. على التوالى؟

هل تستطيع أن تقوم بطريقة ما بإنشاء تطبيق أساسي ASP.NET * يستخدم System.Web.Abstractions بحيث يمكن استخدامه في كلا النوعين من تطبيقات ASP.NET-WEB؟

في هذه الحالة، كيف تتناسب مع الفصول الدراسية في system.web.abstractions مرة أخرى إلى Webforms ASP.NET؟

لا يمكنك اعتماد الكائنات الجديدة من مساحة الاسم، لذلك لا يمكن استخدامها للسخرية، هل يمكنها؟

تحديث: آسف لعدم أن يكون واضحا على ذلك أعرف المشكلة مع اختبار HttpContext وغيرها من كائنات ASP.NET. ولكن شكرا لتفسيرات جيدة على أي حال.

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

المحلول

تحتوي مساحة الاسم على أنواع مصممة لفصول ASP.NET الأساسية (مثل HttpsessionSession).

ماذا تريد أن تعرف لماذا؟

يتم إغلاق العديد من فصول ASP.NET الأساسية هذه أو ثابتة، مما يجعل من المستحيل كسر التبعيات بينهما وبين الكود الخاص بك. هذا يعني أنك لا تستطيع أن تسخر من هذه التبعيات الأساسية هذه، مما يجعل الأمر أكثر صعوبة في اختبار رمز ASP.NET الخاص بك. لذلك، بدلا من التلاعب مباشرة في HTTPRESPONE مباشرة في التعليمات البرمجية، فإنك تتعامل معها عبر httpresponseWrapper., ، والتي، أثناء وقت الاختبار، يمكنك كعب الروتين أو الخروج للتحكم في كيفية تصرف كائن HTTPResponse.

إذا فكرت يوما في إنشاء هذه الأغلفة، أو نفذت واحدا أو اثنين منهم من قبل، فأنت تعلم أن هناك الكثير من العمل ملفوفة في مساحة الاسم هذه، وأنا، لأحد، أنا سعيد لأنهم فعلوا ذلك.

نصائح أخرى

إنه في الواقع للسخرية. - httpcontext هو فئة مختومة ولا يمكن أن يكون (بسهولة) سخرية. لم يتم ختم HttpContextBase وأعتقد أن طرقها افتراضية، مما يجعل السخرية أسهل بكثير.

على الرغم من أنك لا تستطيع تحديد مثيل HTTPCONTEXTBASE (قل، للاستخدام في WebForms)، يمكنك الحصول على مثيل عبر:

var ctx = new HttpContextWrapper(HttpContext.Current);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top