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上实现相同的功能,并避免使用自动配置时的问题。

相关内容

热门资讯

一分钟了解!poker辅助软件... 一分钟了解!poker辅助软件(透视)的确真的有挂(详细教程)(有挂规律)-哔哩哔哩;亲真的是有正版...
1分钟了解!德扑ai软件购买(... 1分钟了解!德扑ai软件购买(辅助挂)辅助透视(有挂介绍)-哔哩哔哩;wpk透视辅助官方版是专为公司...
科技新动态!扑克世界app辅助... 1、科技新动态!扑克世界app辅助,鱼扑克辅助,确实真的有挂(有挂介绍)-哔哩哔哩;该软件可以轻松地...
终于懂了(来玩德州辅助器)软件... 终于懂了(来玩德州辅助器)软件透明挂(辅助挂)其实是真的有挂(有挂了解)-哔哩哔哩关于来玩德州辅助器...
玩家攻略推荐!聚星扑克进去后操... 玩家攻略推荐!聚星扑克进去后操作(透视)确实是真的有挂(详细教程)(有挂规律)-哔哩哔哩;最新版20...
今日科普!德州wpk辅助是否真... 今日科普!德州wpk辅助是否真实存在,云扑克辅助器卖,的确是真的有挂(有挂技巧)-哔哩哔哩1、不需要...
普及知识!pokerworld... 普及知识!pokerworld软件(透视)软件透明挂(有挂详情)-哔哩哔哩;亲真的是有正版授权,小编...
让我来分享经验(鱼扑克发牌规律... 让我来分享经验(鱼扑克发牌规律)辅助透视(辅助挂)其实是真的有挂(有挂总结)-哔哩哔哩;一、鱼扑克发...
玩家实测!德扑之星可以抽水(透... 玩家实测!德扑之星可以抽水(透视)原来真的有挂(详细教程)(有挂技巧)-哔哩哔哩;德扑之星可以抽水简...
8分钟了解!德州微扑克辅助,p... 8分钟了解!德州微扑克辅助,pokerworld软件,其实真的有挂(有挂方法)-哔哩哔哩;德州微扑克...