Я использую 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?