簡體   English   中英

Ninject內核工廠:好主意與否

[英]Ninject Kernel Factory: Good Idea or Not

我有一個當前划分為服務和數據訪問層(正在使用MVC層)的應用程序。 我正在嘗試減少類中所需的樣板Ninject代碼的數量。

我的第一個想法是由UserService和UserDAO擴展的每種業務對象類型(即UserBase)的基類。 不幸的是,這將阻止我擴展任何其他類(即,由所有Service實現擴展的AbstractService類,AbstractDAO類等)。

我的第二個想法是一個簡單的工廠,可以為傳遞給它的各種IModule實現返回IKernel。 不幸的是,每個類都需要一個IKernel成員變量,但它解決了該問題,並允許創建AbstractService和AbstractDAO。

    class NinjectKernelFactory
    {
        private NinjectKernelFactory()
        {
        }

        public static IKernel getKernel(params IModule[] modules)
        {
            IKernel kernel = new StandardKernel(modules);
            return kernel;
        }
    }

還有其他想法可以優化我對Ninject的使用嗎?

是的,使用屬性注入是此處的好方法。 而且,如果您想獲得更好的設計,甚至可以使用ninject本身來創建控制器,方法是創建自定義ControllerFactory並使用內核來獲取實例控制器。 這樣,控制器將已經使用IKernel屬性進行了初始化:

http://nayyeri.net/custom-controller-factory-in-asp-net-mvc

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM