gpt4 book ai didi

asp.net-mvc - 如何将特定于 HTTP 请求的对象注入(inject) Unity 提供的对象?

转载 作者:行者123 更新时间:2023-12-04 13:33:02 25 4
gpt4 key购买 nike

例如,我将“当前用户”存储在 Session 中。 Unity 正在实例化业务层对象。如何让业务层对象知道“当前用户”?

最佳答案

您应该将“当前用户”隐藏在抽象后面:

public interface ICurrentUser
{
string Name { get; }
}

此抽象应在业务层中定义,您需要创建一个特定于 ASP.NET 的实现并将其放置在 Composition Root 中。 :
public class AspNetCurrentUser : ICurrentUser
{
public string Name
{
get { return HttpContext.Current.Session["user"]; }
}
}

现在您的业务层对象可以依赖 ICurrentUser接口(interface),在 Unity 中,您可以按如下方式注册实现:
container.RegisterType<ICurrentUser, AspNetCurrentUser>();

关于asp.net-mvc - 如何将特定于 HTTP 请求的对象注入(inject) Unity 提供的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16341386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com