. Net C# Разрешение внедрения зависимостей ICommands того же типа - PullRequest
0 голосов
/ 17 апреля 2020

У меня есть класс со многими ICommands в параметрах конструктора.

var classWithManyCommands = 
            new ClassWithManyCommands(new AddItemsCommand(new StringService()),
                                      new AddItemsCommand(new IntegerService()),
                                      ...);


public ClassWithManyCommands(
  ICommand command1,
  ICommand command2,
  ICommand command3,
  ICommand command___,
  ICommand command50,
)
{
  _command1 = command1;
   ...
}

Когда я регистрирую ClassWithManyCommands и команды в моем контейнере DependencyInjection (в моем случае AutoFa c), он не сможет разрешить его автоматически.

Будет ли хорошей процедурой хранить ICommands в объекте, подобном AddCommandsContainer , где они создаются? Это не Io C, я знаю.

var addCommandsContainer = new AddCommandsContainer(new StringService(), new IntegerService());
var classWithManyCommands = new ClassWithManyCommands(addCommandsContainer);

public ClassWithManyCommands(AddCommandsContainer addCommandsContainer)
{
  _command1 = addCommandsContainer.command1;
  ...
}
...