我希望能夠在Unity容器中爲同一個接口註冊2個類。 然後,我想選擇基於參數的當前實現。Web Api和Unity IoC
這裏是我的接口:
public interface ICheckService
{
HttpResponseMessage Validate(string p1, string p2);
}
}
我的服務:
public class CheckService1 : ICheckService
{
public HttpResponseMessage Validate(string p1, string p2)
{
/////code
}
}
public class CheckService2 : ICheckService
{
public HttpResponseMessage Validate(string p1, string p2)
{
////code
}
}
在bootstraper.cs我宣佈我的服務:
`container.RegisterType<ICheckService, CheckService1>();`
`container.RegisterType<ICheckService, CheckService2>();`
我的API控制器:
public class ServiceController : ApiController
{
private readonly ICheckService _checkService;
public ServiceController(ICheckService checkService)
{
_checkService = checkService;
}
[HttpGet]
public HttpResponseMessage Validate(string p1, string p2)
{
return _checkService.Validate(p1, p2);
}
}
現在,我想,當我cal我的api時,選擇基於p1參數的實現。
如果p1等於Service1,則從Service1類調用Validate方法,如果p1等於Service2,則從Service2類調用validate方法。
感謝您的幫助。