У меня проблема с этим RegisterType
.
container.RegisterType<IFoo, Foo>("Foo", new ContainerControlledLifetimeManager());
Каждый модуль, который я создам, будет содержать аналогичный последний регистр. Другие модули будут реализовывать Foo2, Foo3 как конкретный тип.
Мне очень нужно, чтобы регистр содержал имя типа, потому что во внешних модулях вызывал бы этот объект с ключом.
Проблема также внутри модуля, в его конструкторе в качестве параметра требуется IFoo (как я знаю, для этого нужен объект ContainerControlledLifetimeManager), и когда я устанавливаю функцию RequestNavigate и пытаюсь сгенерировать модель представления:
public class FooViewModel
{
// here cannot create the object.
public FooViewModel(IFoo foo, ...)
{ .. }
}
И выкидывает:
ResolutionFailedException не было обработано пользовательским кодом. Ошибка разрешения зависимости, тип = "System.Object", имя = "FooView". Исключение произошло во время: при разрешении. Исключение: InvalidOperation — текущий тип Prism4Demo.ModuleA.IFoo является интерфейсом и не может быть сконструирован. Вам не хватает типа?