一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

GetControllerInstance()方法控制器注入

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

掃碼添加小助手

加入工程師交流群

前言

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

對(duì)象模型

圖1

如上圖1,是在控制器(一)中所講,整個(gè)的執(zhí)行過程都包含在DefaultControllerFactory控制器工廠中的GetControllerInstance()方法中,我們?cè)賮砜匆幌翴ControllerActivator接口類型的定義:

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

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

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

先看一下我們自定義的實(shí)現(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     }

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

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

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

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

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

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

    關(guān)注

    114

    文章

    17113

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

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

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

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

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

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

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

    基于信號(hào)注入的永磁同步電機(jī)控制方法

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

    基于信號(hào)注入的永磁同步電機(jī)控制方法

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

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

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

    基于信號(hào)注入的永磁同步電機(jī)控制方法

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

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

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

    電動(dòng)汽車用電機(jī)控制器設(shè)計(jì)方法與實(shí)踐

    電動(dòng)汽車用電機(jī)控制器設(shè)計(jì)方法與實(shí)踐
    發(fā)表于 02-08 02:03 ?54次下載

    基于分?jǐn)?shù)階微積分的PID控制器方法

    隨著分?jǐn)?shù)階理論研究的不斷發(fā)展,分?jǐn)?shù)階控制器方法不僅可以改善系統(tǒng)動(dòng)態(tài)響應(yīng)特性,而且可以獲得優(yōu)越于傳統(tǒng)PID控制器方法,分?jǐn)?shù)階微積分控制器增加了
    發(fā)表于 11-09 17:26 ?20次下載
    基于分?jǐn)?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)設(shè)計(jì)方法

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

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

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

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

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

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

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