Android/WASM: prismMvvm:ViewModelLocator.AutoWireViewModel="True"无法为Android和Wasm上的ViewModel进行自动配置
创始人
2024-08-20 07:30:12
0

这个问题的解决方法是在Android和Wasm上手动配置ViewModel,而不是使用自动配置功能。

下面是一个示例代码,展示如何手动配置ViewModel:

在Android上:

  1. 创建一个名为ViewModelLocator的类,继承自ViewModelProvider.AndroidViewModelFactory
public class ViewModelLocator extends ViewModelProvider.AndroidViewModelFactory {

    private Application mApplication;

    public ViewModelLocator(@NonNull Application application) {
        super(application);
        mApplication = application;
    }

    @Override
    public  T create(@NonNull Class modelClass) {
        if (modelClass.isAssignableFrom(MyViewModel.class)) {
            return (T) new MyViewModel(mApplication);
        }
        throw new IllegalArgumentException("Unknown ViewModel class");
    }
}
  1. 在Activity或Fragment中使用ViewModelProvider来获取ViewModel,并将ViewModelLocator传递给它。
ViewModelLocator viewModelLocator = new ViewModelLocator(getApplication());
MyViewModel viewModel = new ViewModelProvider(this, viewModelLocator).get(MyViewModel.class);

在Wasm上:

  1. 创建一个名为ViewModelLocator的类,实现Ioc.IContainer接口。
public class ViewModelLocator : Ioc.IContainer
{
    public T Resolve() where T : class
    {
        if (typeof(T) == typeof(MyViewModel))
        {
            return new MyViewModel() as T;
        }
        throw new ArgumentException("Unknown ViewModel class");
    }
}
  1. 在Startup类的ConfigureServices方法中注册ViewModelLocator
services.AddSingleton();
  1. 在需要使用ViewModel的地方,通过Ioc服务来获取ViewModel实例。
var viewModelLocator = HttpContext.RequestServices.GetService();
MyViewModel viewModel = viewModelLocator.Resolve();

通过手动配置ViewModel,您可以在Android和Wasm上实现相同的功能,并避免使用自动配置时的问题。

相关内容

热门资讯

黑科技教学!wepoke有假吗... 黑科技教学!wepoke有假吗(ai代打)果然是真的有挂(有挂渠道)-哔哩哔哩1、点击下载安装,微扑...
黑科技存在!德扑ai智能机器人... 1、黑科技存在!德扑ai智能机器人代理(辅助挂)总是是有挂(有挂插件挂)-哔哩哔哩;详细教程。2、德...
黑科技讲解!德扑快速计算胜率(... 黑科技讲解!德扑快速计算胜率(黑科技)往昔真的有挂(有挂透明挂)-哔哩哔哩;科技安装教程;13670...
黑科技脚本!德扑线上创建房间(... 黑科技脚本!德扑线上创建房间(黑科技ai)一贯是真的有挂(有挂软件)-哔哩哔哩1、很好的工具软件,可...
黑科技辅助挂!wpeoke软件... 黑科技辅助挂!wpeoke软件下载(黑科技ai)最初是真的有挂(有挂私人局)-哔哩哔哩;小薇(透视辅...
黑科技存在!wepoke真的有... 黑科技存在!wepoke真的有挂嘛(透明挂)本来有挂(有挂开挂)-哔哩哔哩;玩家必备必赢加哟《136...
黑科技真的!aa poker简... 黑科技真的!aa poker简介俱乐部辅助(透明挂)最初存在有挂(有挂AI)-哔哩哔哩这是由厦门游乐...
黑科技私人局!微扑克辅助软件(... 黑科技私人局!微扑克辅助软件(智能ai)原本真的是有挂(有挂代打)-哔哩哔哩科技教程也叫必备教程,这...
黑科技讲解!poker外挂(a... 黑科技讲解!poker外挂(ai代打)本来真的有挂(有挂稳赢)-哔哩哔哩1、很好的工具软件,可以解锁...
黑科技肯定!德扑软件开发(黑科... 这是一款非常优秀的德扑软件开发 ia辅助检测软件,能够让你了解到德扑软件开发中牌率当中全部隐藏参数,...