Я использую Prism, который также является хорошим контейнером Unity IoC. Я новичок в этой концепции, поэтому я еще не обнял ее. Теперь я хочу создать объект с помощью контейнера IoC, но также передать дополнительный параметр. Позвольте мне объяснить на примере..:
У меня есть класс, который принимает объект команд. Это зарегистрировано в контейнере IoC, поэтому он будет обрабатывать его красиво:
public class Person
{
public Person(IApplicationCommands commands) { .. }
..
}
Person person = _container.Resolve<Person>();
Теперь - я хочу передать другой аргумент - например. имя человека. Тем не менее, я все еще хочу использовать контейнер IoC для обработки разрешающей способности и, следовательно, получить другие параадресы из контейнера IoC. Но передайте имя как "пользовательский" параметр. Это можно сделать?
public class Person
{
public Person(IApplicationCommands commands, string name) { .. }
..
}
string name = "John";
Person person = _container.Resolve<Person>(name); // ....??
Этот пример, похоже, не работает, но есть ли способ заставить его работать? Или контейнер Unity IoC требует, чтобы все параметры регистрировались в контейнере до вызова Resolve?