1
在我们以前的应用程序中,我们使用了StructureMap,我们可以编写很少的代码。asp.net核心内建依赖注入长代码
每次服务前,我们添加了依赖关系,如:
[SetterProperty]
public IXService XService { get; set; }
,并在构造函数中
ObjectFactory.BuildUp(this);
然后在测试中,我们可以简单地通过
var service = new XService();
实例它现在,我们启动另一个应用程序并使用asp.net核心内置DI容器。 它看起来像我们应该写很多代码,而且很长的构造为每个测试:
private readonly ILogger<AccountsController> _logger;
private readonly IMapper _mapper;
private readonly IAccountBlService _accountBlService;
private readonly IValidationHelper _validationHelper;
private readonly IValidator<AccountDTO> _accountDTOValidator;
private readonly Example _example;
private readonly IConfiguration _configuration;
public AccountsController(BillingContext context, ILogger<AccountsController> logger, IMapper mapper, IAccountBlService accountBlService,
IValidationHelper validationHelper, IValidator<AccountDTO> accountDTOValidator, IOptions<Example> example, IConfiguration configuration)
{
_logger = logger;
_mapper = mapper;
_accountBlService = accountBlService;
_validationHelper = validationHelper;
_accountDTOValidator = accountDTOValidator;
_configuration = configuration;
_example = example.Value;
}
有我们没有找到一个较短的方法吗?计划在不久的将来?我们应该使用StructureMap来代替内置的容器吗?或者这有什么缺点?谢谢!