chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

GetControllerInstance()方法控制器注入

454398 ? 來源:博客園 ? 作者:金源 ? 2020-11-04 14:33 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

在上個篇幅中說到從控制器工廠的GetControllerInstance()方法來執(zhí)行控制器的注入,本篇要講是在GetControllerInstance()方法的默認實現(xiàn)中涉及到的一些對象類型,使用它們來進行控制器注入。

對象模型

圖1

如上圖1,是在控制器(一)中所講,整個的執(zhí)行過程都包含在DefaultControllerFactory控制器工廠中的GetControllerInstance()方法中,我們再來看一下IControllerActivator接口類型的定義:

 1     public interface IControllerActivator
 2     {
 3         // 摘要:
 4         //     在類中實現(xiàn)時創(chuàng)建控制器。
 5         //
 6         // 參數(shù):
 7         //   requestContext:
 8         //     請求上下文。
 9         //
10         //   controllerType:
11         //     控制器類型。
12         //
13         // 返回結果:
14         //     創(chuàng)建的控制器。
15         IController Create(RequestContext requestContext, Type controllerType);
16     }

會發(fā)現(xiàn)在里面的定義的Create()方法的簽名和DefaultControllerFactory控制器工廠中的GetControllerInstance()方法簽名相同,這就對了,這就是在GetControllerInstance()方法中的另一個注入點,而在框架默認的執(zhí)行中,會有一個默認的實現(xiàn)類實現(xiàn)了IControllerActivator接口類型的DefaultControllerActivator類型,因為它是框架內(nèi)部的,訪問級別是私有的,所以我們外部是調(diào)用不了的,我們這里可以自己自定義的實現(xiàn),并且注入到框架中。

IControllerActivator類型實現(xiàn)的注入

先看一下我們自定義的實現(xiàn):

 1 using System.Web.Mvc;
 2 using Ninject;
 3 using ConsoleApplication2;
 4 
 5 namespace MvcApplication.CustomControllerActivator
 6 {
 7     public class NinjectControllerActivator:IControllerActivator
 8     {
 9 
10         private IKernel _NinjectKernel;
11 
12         public NinjectControllerActivator()
13         {
14             _NinjectKernel = new StandardKernel();
15             _NinjectKernel.Bind().To();
16         }
17 
18         public IController Create(System.Web.Routing.RequestContext requestContext, Type controllerType)
19         {
20             IController controller = _NinjectKernel.Get(controllerType) as IController;
21             if (controller != null)
22             {
23                 return controller;
24             }
25             return null;
26         }
27     }

實現(xiàn)的方式和上一篇中的幾乎相同,現(xiàn)在只要在框架初始化的時候把它的實例注冊到框架中就可以了。還是再Global.asax中的Application_Start()方法中來注冊:

1 DefaultControllerFactory defaultControllerFactory =
2                 new DefaultControllerFactory(new CustomControllerActivator.NinjectControllerActivator());
3 ControllerBuilder.Current.SetControllerFactory(defaultControllerFactory);

這里要說的是DefaultControllerFactory類型的構造函數(shù)重載中,如果我們傳入了自定義的IControllerActivator類型則會運行我們的,如果沒有則框架會使用默認的實現(xiàn)類型。也可以修改我們上一篇中定義的自定義控制器工廠,這里就不作過多的解釋了。

在圖1可以清楚的看到DefaultControllerActivator類型的內(nèi)部實現(xiàn),在控制器(一)一文中有描述,其中還有IDependencyResolver類型的實現(xiàn)類可以來實現(xiàn)控制器的注入,方式和上述的幾乎相近。區(qū)別就是在于IDependencyResolver類型實現(xiàn)的注入是可以面向全局的,這是框架提供給我們的便捷。

到這里控制器的激活以及控制器的動態(tài)注入都講解完畢了。
編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 控制器
    +關注

    關注

    114

    文章

    17113

    瀏覽量

    184361
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    如何通過為TC332微控制器注入ECC錯誤來測試RAM錯誤?

    我們使用的是 TC332 微控制器,我們使用了 MBIST 測試和無損測試方法。 這些測試提供了在測試期間沒有錯誤的肯定答案。 根據(jù) fuSA 的指導方針,我們需要通過注入 ECC 錯誤來測試 RAM 錯誤和 Pflash 錯誤
    發(fā)表于 01-31 06:39

    正弦信號注入PFC控制環(huán)路的方法

    諧波的任意組合,從而可抑制一個以上的諧波。可根據(jù)工作條件動態(tài)調(diào)節(jié)所注入諧波信號的幅值,從而可最大限度提高補償效果。非常靈活的總體固件解決方案,無需其它硬件。該方法可用于任何數(shù)字控制器,包括 UCD3138 和 C2000 微處理
    發(fā)表于 09-12 09:49

    使用諧波注入法降低PFC諧波并改善THD的方法

    幅值諧波的類似方法。這種方法應該很容易使用,不僅不涉及額外的硬件成本,而且還非常靈活,可抑制任何階數(shù)的諧波。在 TI UCD3138 等數(shù)字電源控制器的幫助下,我開發(fā)出了一種簡單的諧波注入
    發(fā)表于 09-12 09:47

    基于信號注入的永磁同步電機控制方法

    本文介紹了一種基于脈動高頻電壓信號注入法實現(xiàn)面裝式永磁同步電機無傳感控制方法。利用面裝式永磁同步電機的磁飽和效應,在和轉(zhuǎn)子同速旋轉(zhuǎn)的坐標系注入
    發(fā)表于 05-26 10:00 ?25次下載

    基于信號注入的永磁同步電機控制方法

    本文介紹了一種基于脈動高頻電壓信號注入法實現(xiàn)面裝式永磁同步電機無傳感控制方法。利用面裝式永磁同步電機的磁飽和效應,在和轉(zhuǎn)子同速旋轉(zhuǎn)的坐標系注入
    發(fā)表于 12-14 17:03 ?19次下載

    NandFlash控制器的FPGA實現(xiàn)方法技巧

    NandFlash控制器的FPGA實現(xiàn)方法技巧與程序案例分享。
    發(fā)表于 09-21 09:40 ?78次下載

    基于信號注入的永磁同步電機控制方法

    本文介紹了一種基于脈動高頻電壓信號注入法實現(xiàn)面裝式永磁同步電機無傳感控制方法。利用面裝式永磁同步電機的磁飽和效應,在和轉(zhuǎn)子同速旋轉(zhuǎn)的坐標系注入
    發(fā)表于 07-20 14:45 ?16次下載

    PID控制器設計與參數(shù)整定方法綜述

    PID控制器設計與參數(shù)整定方法綜述-2005
    發(fā)表于 03-31 17:46 ?27次下載

    電動汽車用電機控制器設計方法與實踐

    電動汽車用電機控制器設計方法與實踐
    發(fā)表于 02-08 02:03 ?54次下載

    基于分數(shù)階微積分的PID控制器方法

    隨著分數(shù)階理論研究的不斷發(fā)展,分數(shù)階控制器方法不僅可以改善系統(tǒng)動態(tài)響應特性,而且可以獲得優(yōu)越于傳統(tǒng)PID控制器方法,分數(shù)階微積分控制器增加了
    發(fā)表于 11-09 17:26 ?20次下載
    基于分數(shù)階微積分的PID<b class='flag-5'>控制器</b><b class='flag-5'>方法</b>

    門禁控制器常見故障排除方法

    本文開始介紹了什么是門禁控制器和門禁控制器主要分類,其次介紹了門禁系統(tǒng)出現(xiàn)故障并且排除的四大方法,最后介紹了門禁控制器常見故障排除。
    發(fā)表于 01-19 08:41 ?4.7w次閱讀
    門禁<b class='flag-5'>控制器</b>常見故障排除<b class='flag-5'>方法</b>

    基于模糊PID控制器的VRV空調(diào)系統(tǒng)設計方法

    基于模糊PID控制器的VRV空調(diào)系統(tǒng)設計方法
    發(fā)表于 07-01 16:08 ?3次下載

    無葉風扇控制器怎么調(diào) 無葉風扇控制器怎么接線

    無葉風扇控制器是一種新型的風扇控制設備,以其獨特的設計和革新的風扇技術而備受關注。無葉風扇控制器通過軸流風扇和特殊的進風口設計,將空氣吸入并加速,然后通過噴口進行注入和加熱。與傳統(tǒng)的葉
    的頭像 發(fā)表于 01-24 16:51 ?2934次閱讀

    壓力控制器的正確接線方法

    壓力控制器是一種用于監(jiān)測和控制壓力的自動化設備,廣泛應用于工業(yè)、科研和民用領域。正確接線是確保壓力控制器正常工作的關鍵。本文將詳細介紹壓力控制器的接線
    的頭像 發(fā)表于 06-19 10:46 ?5619次閱讀

    瞬態(tài)響應與紋波——遲滯控制器中使用的紋波注入技術分析

    電子發(fā)燒友網(wǎng)站提供《瞬態(tài)響應與紋波——遲滯控制器中使用的紋波注入技術分析.pdf》資料免費下載
    發(fā)表于 10-09 14:34 ?1次下載
    瞬態(tài)響應與紋波——遲滯<b class='flag-5'>控制器</b>中使用的紋波<b class='flag-5'>注入</b>技術分析