【发布时间】:2017-11-30 17:58:51
【问题描述】:
我有一个不知道如何解决的问题。我有一个容器,其中包含我使用 WebApi 公开的不同服务的不同接口。问题是我需要在我的控制器中获取该依赖项,并且我必须避免使用静态。我读到了这个
http://beletsky.net/2011/10/inside-aspnet-mvc-idependencyresolver.html
http://www.asp.net/web-api/overview/advanced/dependency-injection
在 asp.net 中,我读到我可以实现自己的 IDependencyResolver。这是疯了吗?因为我搜索了很多,我只找到了使用 Unity 的示例。如果我不想使用那个依赖注入器?实现这一目标的最佳方法是什么?
public class MyController: ApiController
{
private InterfaceService m_interfaceService; //This is the dependency I need
public MyController()
{
}
[HttpGet]
[Route("myServices/")]
public List<IServiceCategory> GetServiceObjectsList()
{
return m_interfaceServices.GetObjectsList();
}
}
【问题讨论】:
-
不喜欢unity就不要用,但是不要自己写DI容器。
-
那我该怎么办?具有不同接口的容器是我团队制作的“某种”DI。这就是为什么我不能使用像 Unity 这样的 DI 的原因
-
@RobertMoskal 为什么不建议编写自己的 DI 容器?
-
专注于解决您的领域问题!
-
既然已经有一堆好的 DI-Container,为什么还要写一个 DI-Container?我一遍又一遍地进行同样的讨论。 “让我们编写自己的日程安排应用程序”。 “不,让我们使用 Quartz.Net”。 “让我们编写自己的消息服务总线”..“不,让我们使用 RabbitMQ 或 Azure-Message-Bus”。同样的对话,一遍又一遍。
标签: c# asp.net asp.net-mvc asp.net-web-api