代码之家  ›  专栏  ›  技术社区  ›  Mark Wardell

接口和MvvmToolkit生成器

  •  0
  • Mark Wardell  · 技术社区  · 1 年前

    我们的体系结构是Mvvm我们的测试框架/依赖性注入依赖于每个类的现有接口,这些接口用于在应用程序生成器中注册和在单元测试中替换。

    public DisclaimerViewModel(
            ILogger<DisclaimerViewModel> logger,
            IResourceExtractor resourceExtractor,
            IUserSettings userSettings,
            IAppInfo appInfo,
            INavigationService navigationService)
    

    如果我想使用MVVM Toolkit生成的具有应用于类中私有字段的[OObservableProperty]属性的ObservableObjects,我该如何定义接口?

    如何为此MVVM Toolkit兼容的示例视图模型类编写接口:

    [ObservableObject]
    public partial class MyTestClass
    {
        [ObservableProperty] private int _count;
    
        public MyTestClass(int count)
        {
            _count = count;
        }
    }
    
    1 回复  |  直到 1 年前
        1
  •  0
  •   Serg    1 年前

    MvvmToolkit为您生成正常属性,因此在接口中使用它没有问题

    interface ITest
    {
        public int Count {get;set;}
    }
    
    [ObservableObject]
    public partial class MyTestClass : ITest
    {
        [ObservableProperty]
        private int _count;
    
        public MyTestClass(int count)
        {
            //_count = count;
            //note: do not use fields, use properties, 
            //      unless you have a really serious reason against it.
            Count = count; 
        }
    }
    

    这个 int Count{get{...} set{...}} 属性将从带注释的字段中自动生成,您将获得该类,从而完全实现该接口。

    属性的名称将与字段的名称匹配,但前导下划线将被删除,第一个字母将大写(有关命名约定的更多详细信息,请参阅MVVM工具包文档)