私は Unity で Prism for WPF を使用しています - 私たちのアプリケーションは複数の子ビューを作成します (ユーザーがアイテムを「開く」とき)。
// The various views used in the child are registered using
// RegisterViewWithRegion in the module that implements that view
public void Initialize()
{
regionManager.RegisterViewWithRegion("ItemNavigation", typeof(ItemNavigationView));
regionManager.RegisterViewWithRegion("ItemContent", typeof(ItemContentView));
}
このような複数の子ビューが作成されているため、それぞれが独自のスコープ リージョン マネージャーを使用して作成する必要があります (複雑すぎると思われるため、複数のシェルを使用しないことにしました)。アイテム固有の依存関係を注入できるようにします。
これが子ビューの作成方法です
var childContainer = container.CreateChildContainer();
childContainer.RegisterInstance(...);
var childView = childContainer.Resolve<ChildItemView>();
region.Add(childView, viewName, createRegionManagerScope: true);
の依存関係を正しく解決するために子ユニティ コンテナーが使用さChildItemView
れますが、ネストされたビューが作成されると (ItemNavigationView
およびItemContentView
) 親コンテナーが代わりに使用されるため、一部の依存関係の解決に失敗します。
リージョン内で作成されたビューの依存関係を解決するときに正しいユニティ コンテナが使用されるように、子ユニティ コンテナをスコープ リージョンに関連付けるにはどうすればよいですか?