【发布时间】:2020-10-23 01:07:44
【问题描述】:
我看过很多关于使用相同接口实现服务的帖子,但我无法掌握如何配置 AutoFac 以根据调用的 Route 注入所需的服务。
假设我有 4 个服务都实现了相同的接口:
public interface IService { void DoSomething(); }
public class UpService: IService { public void DoSomething() { } }
public class DownService : IService { public void DoSomething() { } }
public class LeftService : IService { public void DoSomething() { } }
public class RightService : IService { public void DoSomething() { } }
我要做的是根据调用的路由只注入其中一个
[RoutePrefix("api/values")]
public class ValuesController : ApiController
{
private readonly IService _service;
public ValuesController(IService service)
{
_service = service;
}
[HttpPost]
[Route("up")]
public IHttpActionResult Up()
{
_service.DoSomething()
return Ok();
}
[HttpPost]
[Route("down")]
public IHttpActionResult Down()
{
_service.DoSomething()
return Ok();
}
[HttpPost]
[Route("left")]
public IHttpActionResult Left()
{
_service.DoSomething()
return Ok();
}
[HttpPost]
[Route("right")]
public IHttpActionResult Right()
{
_service.DoSomething()
return Ok();
}
我应该如何注册这 4 项服务?我应该使用过滤器吗?
谢谢
【问题讨论】: