4

私は 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) 親コンテナーが代わりに使用されるため、一部の依存関係の解決に失敗します。

リージョン内で作成されたビューの依存関係を解決するときに正しいユニティ コンテナが使用されるように、子ユニティ コンテナをスコープ リージョンに関連付けるにはどうすればよいですか?

4

0 に答える 0