Microsoft.Maui.ApplicationModel.NotImplementedInReferenceAssemblyException:

问题描述 投票:0回答:1

我正在使用 BaseViewModel 来检查互联网连接,它充当基类。其他视图模型正在提取该 BaseViewModel。

当我尝试模拟 BaseViewModel 时,它给出了上述错误(标题中提到)。

BaseViewModel.cs

public partial class BaseViewModel : ObservableObject
 {
     [ObservableProperty]
     private bool _internetConnected = true;
     public BaseViewModel()
     {
         if(Connectivity.NetworkAccess != NetworkAccess.Internet)
         {
             InternetConnected = false;
         }
         Connectivity.ConnectivityChanged += ConnectivityHandler;
     }

     public void ConnectivityHandler(object sender, ConnectivityChangedEventArgs e)
     {
         if (Connectivity.NetworkAccess == NetworkAccess.Internet)
         {
             InternetConnected = true;
         }
         else
         {
             InternetConnected = false;
         }
     }
 }

我在执行构造函数时遇到错误。

我附上错误的屏幕截图。

enter image description here

我尝试模拟基类构造函数,并尝试跳过基类构造函数调用。 没成功。

任何帮助将不胜感激。

c# unit-testing mocking maui xunit
1个回答
0
投票

这是用于 Windows 桌面开发吗?如果是这样,我建议放弃 MAUI,因为它非常适合多平台开发,但如果你只是进行 Windows 桌面开发,那么就不那么重要了。如果是用于 Windows 开发,那么我建议您使用 WPF 作为我的开发工作资金(一个 WPF .net 8 核心项目);如果您喜欢多平台并且 WPF 还不够好,那么我建议使用 Avalonia 项目进行多平台开发工作,然后为我的 Windows 开发创建一个项目,并使用 AvaloniaDialogs 之类的东西来了解有关如何进行的所有基础知识将窗口上的对话框显示为消息框,并将 Avalonia.ReactiveUI 和 System.Reactive 显示为我的可观察对象(和/或可观察为属性)。另外,对于交互和其他 Windows 特定类,我需要使用 Mvvm.CommonInteractions.Avalonia,它具有一些在启动构建器(服务)设置中设置的基本服务和常见交互。如果您坚持使用 MAUI,我知道您必须在项目文件上指定可执行文件的框架和/或平台的类型。但我确实来到这里,因为我遇到了与您相同的问题,有人说“使用 Avalonia.Essentials”,它变成了“Maui.Essentials”,这就是我遇到您遇到的问题的方式,您可以将响应添加到任一其中一个项目。希望这会有所帮助。祝你好运。

© www.soinside.com 2019 - 2024. All rights reserved.