<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      好久沒有寫文章了,懶。

      今天收到一封郵件,是一位叫 HMQ 的同人,對我寫過的 ASP.NET MVC3 依賴注入 的文章提出了問題,

      當(dāng)時我寫這篇文章的時候,正式的 MVC3 版本還沒有出來,當(dāng)時我用的是 MVC3 Beta 版,而現(xiàn)在 MVC4 都快出來了,

      因此這個 Demo 在當(dāng)時的環(huán)境下是測試通過的,沒有問題,而在現(xiàn)在的環(huán)境下可能會有問題(本人沒有測試過),

      如果哪天有時間,我會把這個 Demo 拿下來,進(jìn)行適當(dāng)?shù)男薷模屗m合當(dāng)前的 MVC3 版本,不過話又說回來我覺得沒有太大必要,

      因為現(xiàn)在想在 ASP.NET MVC3 中使用依賴注入非常的簡單,幾乎用不了幾行代碼就可以實現(xiàn)依賴注入,我推薦使用 Ninject,

      具體步驟如下:

       

      第一步、新創(chuàng)建一個 ASP.NET MVC3 工程。

      第二步、通過 NuGet 控制臺直接輸入命令:install-package Ninject.Mvc3

      安裝完這個源碼包之后,所有的依賴注入框架已設(shè)置完成,無須你改動任何代碼,

      你會發(fā)現(xiàn)項目中添加了一個“App_Start”文件夾,在這個文件夾中生成了一個名為“NinjectMVC3.cs”的代碼文件。

      第三步、打開 \App_Start\NinjectMVC3.cs,找到 RegisterServices 方法,將你的依賴注入映射代碼直接寫入即可。

       

      代碼清單如下:

      自動生成的 \App_Start\NinjectMVC3.cs 代碼:

      [assembly: WebActivator.PreApplicationStartMethod(typeof(MvcApplication3.App_Start.NinjectMVC3), "Start")]
      [assembly: WebActivator.ApplicationShutdownMethodAttribute(typeof(MvcApplication3.App_Start.NinjectMVC3), "Stop")]

      namespace MvcApplication3.App_Start
      {
          using System.Reflection;
          using Microsoft.Web.Infrastructure.DynamicModuleHelper;
          using Ninject;
          using Ninject.Web.Mvc;
          using MvcApplication3.Services;
          {

          public static class NinjectMVC3 
              private static readonly Bootstrapper bootstrapper = new Bootstrapper();

              /// <summary>
              
      /// Starts the application
              
      /// </summary>
              public static void Start() 
              {
                  DynamicModuleUtility.RegisterModule(typeof(OnePerRequestModule));
                  DynamicModuleUtility.RegisterModule(typeof(HttpApplicationInitializationModule));
                  bootstrapper.Initialize(CreateKernel);
              }
              
              /// <summary>
              
      /// Stops the application.
              
      /// </summary>
              public static void Stop()
              {
                  bootstrapper.ShutDown();
              }
              
              /// <summary>
              
      /// Creates the kernel that will manage your application.
              
      /// </summary>
              
      /// <returns>The created kernel.</returns>
              private static IKernel CreateKernel()
              {
                  var kernel = new StandardKernel();
                  RegisterServices(kernel);
                  return kernel;
              }

              /// <summary>
              
      /// Load your modules or register your services here!
              
      /// </summary>
              
      /// <param name="kernel">The kernel.</param>
              private static void RegisterServices(IKernel kernel)
              {
                  //寫入你需要綁定的依賴注入關(guān)系,除了此方法之外的其它代碼都是自動生成的,無須我們操心。

                  //2011-10-26 新修復(fù) bug,遺漏了后面的 InRequestScope(),這個很重要!

                  //感謝  Scott Xu 南方小鬼  的指錯:),差點誤人子弟啊!

       

                  kernel.Bind<ITestService>().To<TestService>().InRequestScope();

              }        
          }
      }

       

      測試代碼如下: 

      \Services\ITestService.cs

      namespace MvcApplication3.Services
      {
          public interface ITestService
          {
              string GetMessage(string aString);
          }
      } 

       

      \Services\TestService.cs 

      using System;

      namespace MvcApplication3.Services
      {
          public class TestService : ITestService
          {
              string ITestService.GetMessage(string aString)
              {
                  return "--------------" + (String.IsNullOrEmpty(aString) ? String.Empty : aString) + "--------------";
              }
          }
      }

       

      \Controllers\HomeController.cs

      using System.Web.Mvc;
      using Ninject;
      using MvcApplication3.Services;

      namespace MvcApplication3.Controllers
      {
          public class HomeController : Controller
          {

              [Inject]
              public ITestService Service { getset; }

              public ActionResult Index()
              {
                  ViewBag.Message = Service.GetMessage("Welcome to ASP.NET MVC!");
                  return View();
              }

              public ActionResult About()
              {
                  return View();
              }

          }
      }

       

      在此基礎(chǔ)上我們自己可以進(jìn)行一些優(yōu)化,從而使依賴注入使用起來更加方便, 更適合團(tuán)隊開發(fā),

      隨便說一句 NuGet 真是不錯,應(yīng)該好好利用。

      源碼下載:Ninect.Mvc3_Demo.zip(環(huán)境:VS2010 SP1 + MVC3)


      posted on 2011-10-25 21:51  老馬快跑  閱讀(5410)  評論(11)    收藏  舉報

      主站蜘蛛池模板: 亚洲av第一区二区三区| 亚洲无人区一码二码三码| 平阳县| 人人人澡人人肉久久精品| 久久久久国产精品熟女影院| 日本免费一区二区三区日本| 中文字幕制服国产精品| 正阳县| 午夜在线欧美蜜桃| 日本一区二区三区四区黄色| 亚洲一区二区三区av链接| 国产无遮挡又黄又大又爽| 亚洲免费观看一区二区三区| 中文字幕一区二区人妻| 人妻久久久一区二区三区| 国产精品日韩中文字幕熟女| 久久综合亚洲色一区二区三区| 国产亚洲精品久久久久久久软件| 国产999精品2卡3卡4卡| japanese无码中文字幕| 精品人妻少妇一区二区三区在线| 亚洲av高清一区二区三| 精品av无码国产一区二区| 国产三级精品三级在线区| 久久久国产精品樱花网站| 无码激情亚洲一区| 亚洲肥熟女一区二区三区| gogogo高清在线播放免费| 亚洲国产中文在线有精品| 人人人澡人人肉久久精品| 国产精品自产拍在线播放| 成人欧美一区二区三区在线观看| 亚洲色大成网站WWW久久| 那曲县| av一区二区中文字幕| 蜜臀午夜一区二区在线播放| 377p欧洲日本亚洲大胆| 丰满的少妇一区二区三区| 日本熟妇XXXX潮喷视频| 亚洲中文字幕无码永久在线| 日韩熟女精品一区二区三区|