سؤال

سؤالي الأول هو، أين أضع هذا التمديد المخصص بحيث يمكن استدعاءه بدلا من الفوتوالية الافتراضية؟

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

السؤال الثاني ... يمكن أن تكون مرتبطة بالأول مرة: عندما أحاول تجاوز طريقة المسألة من Authorizeattribute، أنا أبعز في system.web.httpcontextbase ك httpcontext. لسبب ما لا يستطيع Visual Studio حل System.web.httpcontextbase. مرة أخرى قد يكون هذا مرتبطا حيث أنقذت هذه الفئة في حلاي. أو ربما أحتاج إلى استيراد DLL في مكان ما لتمديد هذا؟

يرجى تقديم النصيحة.

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

المحلول

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

ربما تحتاج إلى إضافة مرجع إلى system.web.abstractions لمشروعك. في حين أن الفصول "الأساسية" موجودة في مساحة الاسم System.Web، يتم العثور عليها في DLL مختلفة.

نصائح أخرى

إنه يعمل بالنسبة لي، آمل أن يساعدك ذلك.

using System.Web.Mvc;

public class CustomAuthorize : AuthorizeAttribute
{

}

In controller

 [CustomAuthorize]
public class OrderController : Controller
{

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