سؤال

كانت فكرتي هي إنشاء HTTPContext الخاصة بي والتي ستشمل بعض الكائنات الداخلية المستخدمة في تطبيقنا. لذلك اعتقدت أنني سأخلق ببساطة

public class FooHttpContextBase : HttpContextBase
{
    public string Foo
    {
        get { return "Boo"; }
    }
}

ثم تجاوز خاصية httpcontext:

public abstract class BaseController : Controller
{
    private FooHttpContextBase context;

    public BaseController()
    {
        context = new FooHttpContextBase();
    }

    override public HttpContextBase HttpContext
    {
        get { return context; }
    }
}

ولكن بعد ذلك أدركت أن httpcontext ليس افتراضيًا - لذلك لا يمكن تجاوزه.

حسنًا ، ماذا تقترح؟ أضف بعض الممتلكات الجديدة إلى basecontroller؟

شكرا لك مقدما!

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

المحلول

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

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