내 프리즘 응용 프로그램에서 오류가 발생했습니다 CustomerModule, \ "\" 유형의 인스턴스를 가져 오는 동안 활성화 오류가 발생했습니다.프리즘 (Prism)에서 유형 대신 모듈을 모듈 작성기에 삽입하려면 어떻게해야합니까?
그것은 내 고객 모듈 내가 유형 IMenuManager의 "menuManager"을 주입하기 위해 노력하고 있다는 사실에 의한 것 : 나는 를 주입하기 위해 CustomerModule 생성자를 변경하는 경우,
namespace CustomerModule
{
public class CustomerModule : IModule
{
private readonly IRegionManager regionManager;
private readonly IUnityContainer container;
private readonly IMenuManager menuManager;
public CustomerModule(IUnityContainer container,
IRegionManager regionManager,
IMenuManager menuManager)
{
this.container = container;
this.regionManager = regionManager;
this.menuManager = menuManager;
}
public void Initialize()
{
container.RegisterType<IMenuManager, MenuManager>(new ContainerControlledLifetimeManager());
...
그러나 대신 인터페이스의을 입력 는이 작동 :
public CustomerModule(IUnityContainer container,
IRegionManager regionManager,
MenuManager menuManager)
그래서 IMenuManager를 구현하기 위해 MenuManager를 등록해야합니까? CustomerModule의 Initialize 메서드에 등록하는 것이 너무 늦은 것 같습니다.
는 답변 :
나는 ConfigureContainer()에 넣어 그것은 ") (base.ConfigureContainer"에 두십시오 괜찮 았는데 : 당신은 아마 그 때문이다 깨달았다으로
protected override void ConfigureContainer()
{
base.ConfigureContainer();
Container.RegisterType<MenuManager>(new ContainerControlledLifetimeManager());
}
나는이 방법의 변경을 고려하고 있습니다. 모듈에는 여전히 MenuManager 유형에 대한 구체적인 참조가 있어야합니다. 나는 내가 여기 게시 한 샘플에서 당신을 위해 배치 한 패턴을 따르라고 촉구합니다. http://stackoverflow.com/questions/1152282/looking-for-prism-example-of-modules-loading-themselves-into -a-menu/1154924 # 1154924 –