Prismv4 및 MEF의 새로운 기능입니다.PRISM + MEF - 영역이 제대로 작동하지 않습니다.
나는 퀵 스타트를 통해 두 개를 결합하려고 시도했지만 작동시키지 못했습니다.
먼저 쉘 스크립트를로드하기 위해 부트 스트 래퍼가 있습니다.
public sealed class ClientBootstrapper : MefBootstrapper
{
protected override void ConfigureAggregateCatalog()
{
base.ConfigureAggregateCatalog();
//Add this assembly to export ModuleTracker (Shell is in this Assembly).
AggregateCatalog.Catalogs.Add(new AssemblyCatalog(Assembly.GetExecutingAssembly()));
}
protected override DependencyObject CreateShell()
{
return Container.GetExportedValue<Shell>();
}
protected override void InitializeShell()
{
base.InitializeShell();
Application.Current.MainWindow = (Window)Shell;
Application.Current.MainWindow.Show();
}
}
이렇게하면 정상적으로 작동합니다. 셸 창이 표시되었고 멋진 Hello World 메시지가 나타납니다. 그런 다음 뷰를 해당 영역에로드 할 수 있도록 셸 창 안에 영역을 만들려고했습니다. 나는 심지어 이것을 외부의 집회로 옮기는 것을 보려고 노력하지도 못했다.
[ModuleExport(typeof(HelloWorldModule), InitializationMode = InitializationMode.OnDemand)]
public class HelloWorldModule : IModule
{
[Import(AllowRecomposition = true)]
private IRegionViewRegistry regionViewRegistry;
[ImportingConstructor()]
public HelloWorldModule(IRegionViewRegistry registry)
{
this.regionViewRegistry = registry;
}
public void Initialize()
{
regionViewRegistry.RegisterViewWithRegion("PrimaryRegion", typeof(Views.HelloWorldView));
}
}
HelloWorld는 뷰 (a TextBlock을 포함 단순한의 UserControl)의 영역에로드되지 않고! 내 지역에로드하는 방법에 대해 조금 잃어버린 것 같아요.
이 게시물의 "답변"부분은 어디에 있습니까? –
이 질문은 MEF 구현에 대해 묻습니다. 불행히도 여기에 제공된 대답은 Unity를 사용하는 것입니다. –