Dans la solution Prism Commanding_Desktop QuickStart , dans le OrderModule, il définit une variable à ce qui suit:Où sont les types enregistrés dans Prism?
this.container.Resolve<OrdersEditorPresentationModel>()
mais où est-ce en cours d'enregistrement afin qu'il puisse être « résolu » du récipient? Je vois ci-dessous où OrdersRepository est en cours d'enregistrement, mais je ne trouve nulle part dans le projet où OrdersEditorPresentationModel est en cours d'enregistrement.
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;
}
...
Le constructeur du type étant résolu ci-dessus a une signature particulière, mais où est cette signature en cours de définition:
public OrdersEditorPresentationModel(OrdersEditorView view,
IOrdersRepository ordersRepository,
OrdersCommandProxy commandProxy)
Je pense que ce pourrait être une signature par défaut, mais un autre exemple dans la documentation Prism, un constructeur de présentateur a une signature différente: Ce type n'a pas
public EmployeesPresenter(IEmployeesView view,
IEmployeesListPresenter listPresenter,
IEmployeesController employeeController)