【发布时间】:2017-02-18 06:20:58
【问题描述】:
我正在使用存储库和服务层设计模式构建一个 ASP.NET MVC 5 应用程序。我使用统一将我的服务注入到我的控制器中。
这很好用,直到现在我还没有需要考虑实例化任何需要在我的控制器之外注入接口的对象。但是,在配置我的应用程序启动以在数据库中设置一些用户时,我需要这样做。
为此,我想使用我构建的UsersService。我突然想到,随着应用程序的增长,肯定会有其他场合我想做同样的事情,例如从另一个服务中调用一个服务。
我发现我可以实例化一个 Unity 容器并在其上调用 resolve 来获取我的新服务实例:
IProductService productService = container.Resolve<IProductService>();
然而这对我来说有点异味,让容器在我的应用程序中泄漏似乎是一种反模式。那么有没有更好的方法来做到这一点?
【问题讨论】:
标签: asp.net-mvc dependency-injection asp.net-mvc-5 unity-container