В решении 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)