Я пытаюсь создать фабрику провайдеров viewmodel, и я немного растерялся. Я уже добавил необходимые пакеты Nuget, и мои модели представлений расширяют тип AndroidViewModel
. Теперь я хотел бы создать фабрику, которая использовала бы autofac для создания требуемых моделей представлений из метода OnCreate
activitie. Вызов создания выглядит следующим образом:
_viewModel = (ViewModelProviders.Of(this, _viewModelFactory)
.Get(Java.Lang.Class.FromType(typeof(MainActivityViewModel))) as JavaObjectWrapper<MainActivityViewModel>)
.Object;
Сейчас на фабрике:
public class ViewModelFactory : ViewModelProvider.AndroidViewModelFactory {
public ViewModelFactory(Application application) : base(application) {
}
public override Object Create(Class modelClass) {
// TODO: any way to get the .NET type that was passed here?
return base.Create(modelClass);
}
}
Могу ли я получить тип .NET (MainActivityViewModel) из экземпляра Class, который передается в вызов метода Create (этот тип потребуется для разрешения его из контейнера autofac)? Если есть, как я могу это сделать?
Спасибо.