Prism.Wpf
とPrism.Unity
NuGetパッケージ(どちらも6.3.0
)を使用するWPFアプリケーションがあります。私は現在、Bootstrapperクラス(下記参照)内のUnityコンテナのタイプを手動で登録していますが、すべてがうまくいきます。私は慣例によりタイプを登録しようとすると、ユニティ・コンテナ内の型を登録するときUnity with Prismを使用して慣習でタイプを登録するには?
internal class Bootstrapper : UnityBootstrapper
{
protected override DependencyObject CreateShell()
{
return Container.Resolve<MainWindow>();
}
protected override void InitializeShell()
{
Application.Current.MainWindow.Show();
}
protected override void ConfigureContainer()
{
base.ConfigureContainer();
// Register types
Container.RegisterType<IDialogService, DialogService>(new ContainerControlledLifetimeManager());
}
}
はしかし、私はMicrosoft.Practices.Unity.DuplicateTypeMappingException
を取得します。
レジスタ:
protected override void ConfigureContainer()
{
base.ConfigureContainer();
// Register types by convention
Container.RegisterTypes(
AllClasses.FromLoadedAssemblies(),
WithMappings.FromMatchingInterface,
WithName.Default,
WithLifetime.ContainerControlled);
}
例外メッセージ:
An attempt to override an existing mapping was detected for type Prism.Regions.IRegionNavigationContentLoader with name "", currently mapped to type Prism.Unity.Regions.UnityRegionNavigationContentLoader, to type Prism.Regions.RegionNavigationContentLoader.
プリズム&ユニティを使用するとき、どのように私は慣例によりタイプを登録しますか?
@downvoter - 質問を改善するにはどうすればよいですか?コメントなしで下降することは助けになりません... –