91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ASP.NET MVC 3如何讓依賴注入實現得更簡單

發布時間:2021-11-24 13:12:43 來源:億速云 閱讀:126 作者:柒染 欄目:編程語言

本篇文章為大家展示了ASP.NET MVC 3如何讓依賴注入實現得更簡單,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

我沒有找到一個完整的示例,只有一些代碼片斷,于是,我將其整理了一翻,也有一點點個人的心得,拿出來,與大家分享一下,

如遇高人請不吝賜教,下面是代碼片斷。

1、實現 MVC3 Beta 中提供的依賴注入接口 IDependencyResolver ,MyDependencyResolver.cs 的代碼:

using System;  using System.Collections.Generic;  using System.Linq;  using System.Web;  using System.Web.Mvc;  using Microsoft.Practices.Unity;   namespace Demo  {      public class MyDependencyResolver : IDependencyResolver      {          #region IDependencyResolver 成員           /// <summary>          /// 依賴注入容器          /// </summary>          private UnityContainer _unityContainer;           /// <summary>          /// 構造          /// </summary>          /// <param name="aUnityContainer">依賴注入容器</param>          public MyDependencyResolver( UnityContainer aUnityContainer )          {              _unityContainer = aUnityContainer;          }           public object GetService( Type aServiceType )          {              try             {                  return _unityContainer.Resolve( aServiceType );              }              catch             {   /// 按微軟的要求,此方法,在沒有解析到任何對象的情況下,必須返回 null,必須這么做!!!!                  return null;              }          }           public IEnumerable<object> GetServices( Type aServiceType )          {              try             {                  return _unityContainer.ResolveAll( aServiceType );              }              catch             {    /// 按微軟的要求,此方法,在沒有解析到任何對象的情況下,必須返回空集合,必須這么做!!!!                  return new List<object>( );              }          }           #endregion      }   }

2、在 Global.asax.cs 中設置依賴注入解析器  DependencyResolver (這是一個全局靜態類,也是 MVC3 Beta 新增的):

using System;  using System.Collections.Generic;  using System.Linq;  using System.Web;  using System.Web.Mvc;  using System.Web.Routing;  using Microsoft.Practices.Unity;   namespace Demo  {      // Note: For instructions on enabling IIS6 or IIS7 classic mode,       // visit http://go.microsoft.com/?LinkId=9394801       public class MvcApplication : System.Web.HttpApplication      {   public static void RegisterGlobalFilters( GlobalFilterCollection filters )          {              filters.Add( new HandleErrorAttribute( ) );          }           public static void RegisterRoutes( RouteCollection routes )          {              routes.IgnoreRoute( "{resource}.axd/{*pathInfo}" );               routes.MapRoute(                  "Default", // Route name                  "{controller}/{action}/{id}", // URL with parameters  new { controller = "Home", action = "Index", id = UrlParameter.Optional }              );           }           protected void Application_Start( )          {              AreaRegistration.RegisterAllAreas( );               RegisterGlobalFilters( GlobalFilters.Filters );              RegisterRoutes( RouteTable.Routes );              //設置依賴注入              RegisterDependency( );          }           private static UnityContainer _Container;          public static UnityContainer Container          {              get             {                  if ( _Container == null )                  {                      _Container = new UnityContainer( );                  }                  return _Container;              }          }           protected void RegisterDependency( )          {              Container.RegisterType<ITest, Test>( );   DependencyResolver.SetResolver( new MyDependencyResolver( Container ) );          }      }  }

3、Controller的代碼,HomeController.cs:

using System;  using System.Collections.Generic;  using System.Linq;  using System.Web;  using System.Web.Mvc;  using Microsoft.Practices.Unity;   namespace Demo.Controllers  {   public class HomeController : Controller      {          [Dependency]          public ITest Test { get; set; }                    public ActionResult Index( )          {     ViewModel.Message = Test.GetString( );               return View( );          }           public ActionResult About( )          {              return View( );          }      }  }

4、ITest.cs代碼:

using System;  using System.Collections.Generic;  using System.Linq;  using System.Text;   namespace Demo  {      public interface ITest      {          string GetString( );      }  }

5、Test.cs代碼:

using System;  using System.Collections.Generic;  using System.Linq;  using System.Web;   namespace Demo  {      public class Test:ITest      {          #region ITest 成員           public string GetString( )          {              return "Run demo!";          }           #endregion      }  }

***** 注意,這篇文章只適用于 ASP.NET MVC3 Beta 版,將來正式版出來了,未必采用這種方式來實現,畢竟對于依賴注入這塊,

從 MVC1 -> MVC3 Preview1 -> MVC3 Beta 一直都在變化。

上述內容就是ASP.NET MVC 3如何讓依賴注入實現得更簡單,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

黄大仙区| 高邑县| 乐至县| 望江县| 庆安县| 新巴尔虎左旗| 怀来县| 阿拉尔市| 诸城市| 洪泽县| 通渭县| 章丘市| 贵州省| 广河县| 崇明县| 耒阳市| 丰顺县| 高雄市| 和田县| 历史| 买车| 左云县| 商都县| 抚远县| 龙游县| 阿拉善盟| 葫芦岛市| 大名县| 海淀区| 天等县| 沛县| 临泽县| 正阳县| 滕州市| 奇台县| 剑阁县| 盱眙县| 江川县| 桐庐县| 惠州市| 哈巴河县|