I m 采用MTV和PRISM。 在该项目中,I ve进入一个称为“红十字与红新月”的共同接口,其他模块应当实施这一接口并登记。
// Common module
public interface IFoo { }
// Module1 module
public class Foo1 : IFoo { }
然后,当我启动单元1时,我登记我的类型和航海。
_container.RegisterType<IFoo, Foo1>(new ContainerControlledLifetimeManager());
_container.RegisterType<Object, View1>("View1");
var module = new Uri("View1", UriKind.Relative);
_regionManager.RequestNavigate("MainRegion", module);
观点1
public ViewModel1(IFoo foo, IEventAggregator eventAggregator, IRegionManager regionManager)
{
...
}
直到此为止,情况就好了。 但后来,我需要从外部单元获得Foo1。 因此,我设立了另一个登记册,以绘制Foo:
_container.RegisterType<IFoo, Foo1>(new ContainerControlledLifetimeManager());
_container.RegisterType<IFoo, Foo1>("foo1", new ContainerControlledLifetimeManager());
也是正确的,它为我工作,但我不喜欢把两个例子分开。 我只需要一个例子,需要同样的例子。
Is there a way to fix this scenario? Thanks in advance.
Anyway, I attach a Zip where contains a demo which represents my problem. http://www.mediafire.com/?feod8x0b952457e