|
昨天,我寫(xiě)了一篇文章(參見(jiàn):ASP.NET MVC 依賴注入),這種實(shí)現(xiàn)方式我個(gè)人一直感覺(jué)不太順,在寫(xiě)出來(lái)與大家一起分享的同時(shí),
也是想讓大家提提自己的建議, 今天下載了微軟發(fā)布的最新的 ASP.NET MVC3 Beta 版,同時(shí)也仔細(xì)閱讀了它的 Release Notes,
讓我感覺(jué)到驚喜的是,MVC3增加了對(duì)依賴注入的支持,增加了一 個(gè) IDependencyResolver 接口定義,真的是很不錯(cuò),比起我原來(lái)的實(shí)現(xiàn)要順暢很多,
還是老方法,上微軟牛人們的博客逛一圈看看有沒(méi)有已經(jīng)寫(xiě)好的代碼,有就拿來(lái)用之,沒(méi)有就只能自己寫(xiě)了,結(jié)果讓我很失望,也可能是我太笨,
我沒(méi)有找到一個(gè)完整的示例,只有一些代碼片斷,于是,我將其整理了一翻,也有一點(diǎn)點(diǎn)個(gè)人的心得,拿出來(lái),與大家分享一下,
如遇高人請(qǐng)不吝賜教,下面是代碼片斷。
?。?、實(shí)現(xiàn) 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>
/// 構(gòu)造
/// </summary>
/// <param name="aUnityContainer">依賴注入容器</param>
public MyDependencyResolver( UnityContainer aUnityContainer )
{
_unityContainer = aUnityContainer;
}
public object GetService( Type aServiceType )
{
try
{
return _unityContainer.Resolve( aServiceType );
}
catch
{
/// 按微軟的要求,此方法,在沒(méi)有解析到任何對(duì)象的情況下,必須返回 null,必須這么做?。。?!
return null;
}
}
public IEnumerable<object> GetServices( Type aServiceType )
{
try
{
return _unityContainer.ResolveAll( aServiceType );
}
catch
{
/// 按微軟的要求,此方法,在沒(méi)有解析到任何對(duì)象的情況下,必須返回空集合,必須這么做?。。。?/span>
return new List<object>( );
}
}
#endregion
}
}
NET技術(shù):ASP.NET MVC3 讓依賴注入來(lái)的更簡(jiǎn)單(新補(bǔ)充了Ninject示例),轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。