依赖注入可解决运行时数据的依赖

iyu*_*yuu 1 c# dependency-injection simple-injector asp.net-web-api

我正在为我的Web api项目使用简单的注入器。我有一个需要会话令牌才能实例化的服务。

public class CustomerService
{
   public CustomerService(Auth auth, IRepositoryFactory repositoryFactory)
   {
        // make post call to another web api for validation
        SomeWebApiCallToValidateAuth.vaildate(auth);
   }
}
Run Code Online (Sandbox Code Playgroud)

因此,对于此服务,它需要一个auth令牌和一个repositoryFactory。我希望它能够注入auth参数(来自http Web请求),并同时使用注册到容器的指定已实现多数民众赞成解决存储库工厂。

但是我不确定如何在简单的注射器上注册它,或者是否有解决方法。任何帮助都会很棒。谢谢。

Ste*_*ven 5

您当前的方法有几个缺点:

关于工厂:注入IRepository而不是IRepositoryFactory。这可能需要你躲在代理真实的版本库,作为解释在这里

关于Auth价值,这取决于需求,但如果Auth值是的一个重要组成部分APICustomerService,这证明了加Auth作为方法的参数CustomerService。如果它是实现细节,请注入某种IAuthProvider抽象,以便您在运行时(构建对象图之后)检索值。同样,这一切都在说明这篇文章