Я совершенно новый в разработке с Xamarin, и я стараюсь использовать библиотеку MvvmCross в общем проекте для всех платформ. Кажется, что я успешно добавил библиотеки в каждый проект, но теперь я смущен, как начать. Я пытался следить за документацией, но, думаю, я не понял ее правильно. Я могу использовать метод CreatableTypes, но в документации нет EndingWith или других методов. Примеры, которые я нашел, в основном касаются PCL. Я даже не знаю, проблема с версией, или если я пропустил что-то важное. Любой намек или ссылка были бы полезными.MvvmCross 4.x в общем проекте
ответ
Прежде всего, будьте внимательны, какую информацию вы читаете, всегда проверяйте дату или тратите свое время на некоторые устаревшие статьи. Важнейшими ресурсами являются официальные образцы: https://github.com/MvvmCross/MvvmCross-Samples
Обычно вы используете PCL для всего фона, и должен быть такой класс https://github.com/MvvmCross/MvvmCross-Samples/blob/master/TipCalc/TipCalc.Core/App.cs. В этом классе вы должны быть в состоянии зарегистрировать все свои услуги, как это для IoC:
public override void Initialize()
{
CreatableTypes().EndingWith("Service").AsInterfaces().RegisterAsSingleton();
А потом MVVMCross автоматически заботится о его инициализации, если вы делаете инъекции конструктора в ViewModel как пример ...
public MainViewModel(IPreferenceService preferenceService)
{
// Do Something here with the Service
}
... и вам просто нужно позвонить, чтобы показать его с ним связано представление:
ShowViewModel<MainViewModel>();
Так в основном пытаются понять образцы первых, я думаю, что это TipCalc STI ll главным образом до настоящего времени, по крайней мере, это MVVMCross 4.0 https://github.com/MvvmCross/MvvmCross-Samples/tree/master/TipCalc
Благодарим вас за ответ. Я попытаюсь следовать образцу. Устаревшие образцы - большая проблема, чтобы найти правильные вещи. Так будет работать так же в общем проекте? Используя App.cs для регистрации и реализации настройки интерфейса в каждом проекте? Или мне нужно выбрать PCL и указать его в моем совместном проекте? – guenes
Я не знаком с общими проектами, но, по крайней мере, вики говорят, что они скорее ретранслируются на PCL: https://github.com/MvvmCross/MvvmCross-Forms/wiki/Shared-Project-vs.-Portable-Class-Libraries – Cyriac
Хотя то есть для Формы. Если методы доступны в общем проекте, вам необходимо придерживаться PCL. – Cyriac