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來代替內置的容器嗎?或者這有什麼缺點?謝謝!