har*_*333 6 asp.net-mvc dependency-injection unity-container asp.net-mvc-4
例如,我将"当前用户"存储在Session中.业务层对象由Unity实例化.如何让业务层对象知道"当前用户"?
Ste*_*ven 13
你应该隐藏抽象背后的"当前用户":
public interface ICurrentUser
{
string Name { get; }
}
Run Code Online (Sandbox Code Playgroud)
应在业务层中定义此抽象,并且您需要创建放置在组合根中的ASP.NET特定实现:
public class AspNetCurrentUser : ICurrentUser
{
public string Name
{
get { return HttpContext.Current.Session["user"]; }
}
}
Run Code Online (Sandbox Code Playgroud)
现在您的业务层对象可以依赖于ICurrentUser接口,在Unity中,您可以按如下方式注册实现:
container.RegisterType<ICurrentUser, AspNetCurrentUser>();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1628 次 |
| 最近记录: |