Prism Commanding_Desktop QuickStartソリューションでは、OrderModule で変数を次のように定義します。
this.container.Resolve<OrdersEditorPresentationModel>()
しかし、コンテナから「解決」できるように、これはどこに登録されていますか? OrdersRepository が登録されている場所を以下に示しますが、OrdersEditorPresentationModelが登録されているプロジェクトの場所が見つかりません。
OrderModule.cs:
public void Initialize()
{
this.container.RegisterType<IOrdersRepository, OrdersRepository>(new ContainerControlledLifetimeManager());
OrdersEditorPresentationModel presentationModel = this.container.Resolve<OrdersEditorPresentationModel>();
...
}
OrdersEditorPresentationModel.cs:
public class OrdersEditorPresentationModel : INotifyPropertyChanged
{
...
public OrdersEditorPresentationModel(OrdersEditorView view, IOrdersRepository ordersRepository, OrdersCommandProxy commandProxy)
{
this.ordersRepository = ordersRepository;
this.commandProxy = commandProxy;
this.Orders = new ObservableCollection<OrderPresentationModel>();
this.PopulateOrders();
this.View = view;
view.Model = this;
}
...
上記で解決されている型のコンストラクターには特定のシグネチャがありますが、このシグネチャはどこで定義されていますか:
public OrdersEditorPresentationModel(OrdersEditorView view,
IOrdersRepository ordersRepository,
OrdersCommandProxy commandProxy)
デフォルトの署名である可能性があると思いますが、Prism ドキュメントの別の例では、プレゼンター コンストラクターには異なる署名があります。
public EmployeesPresenter(IEmployeesView view,
IEmployeesListPresenter listPresenter,
IEmployeesController employeeController)