使用autofac根据请求标头中的值解析服务

时间:2018-03-21 07:20:55

标签: c# asp.net-web-api2 autofac

我有一个名为IDataService的服务,它有像IUserDataService,IOrderDataService这样的实现,用于从Api控制器获取数据。

所有这些都是通用的,所以如果我有一个类似下面的控制器,

public class DataController 
{   
    private readonly IDataService _dataSvc;     
    public DataController(IDataService dataSvc)
    {   
        _dataSvc = dataSvc;     
    }       
    public void GetData(int limit = 1000)
    {       
        return _dataSvc.GetData(limit);     
    } 
}

public interface IDataService
{   
    IEnumerable<T> GetData<T>(int limit = 1000); 
}

public class UserDataService : IDataService
{   
    IEnumerable<User> GetData<User>(int limit = 1000)   
    {       
        return Set<User>().Take(limit); //this is just a placeholder    
    } 
}

public class ProjectDataService : IDataService
{   
    IEnumerable<Project> GetData<Project>(int limit = 1000)     
    {       
        return Set<Project>().Take(limit); //this is just a placeholder     
    } 
}

我正在阅读有关HttpRequest的用法,以便如果我能够从头部获取值并使用它以某种方式解析服务,那么所有流程都将是纯动态的。

如果在这种情况下可以选择任何选项,请告诉我。

0 个答案:

没有答案