You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CommunityToolkit.Mvvm的ObservableProperty代码生成是否支持VB.NET?

CommunityToolkit.Mvvm对VB.NET的ObservableObject与ObservableProperty支持说明

CommunityToolkit.Mvvm的ObservableObject和ObservableProperty自动代码生成功能完全支持VB.NET,你遇到的问题大概率是VB语法约定、项目配置或源生成器工作机制的差异导致的,以下是具体说明和解决步骤:

1. VB.NET的特性使用语法差异

VB.NET与C#的特性写法、字段命名约定有明确区别,必须严格遵循:

  • 特性需用<ObservableProperty>而非C#的[ObservableProperty]
  • 目标字段必须是Private访问级别,且名称以下划线开头(工具会以此为依据生成对应的公共属性,比如_myProperty会生成MyProperty)
  • 必须继承ObservableObject基类

示例正确代码:

Imports CommunityToolkit.Mvvm.ComponentModel

Public Class SampleViewModel
    Inherits ObservableObject

    '<ObservableProperty>
    Private _username As String
End Class

2. 确保源生成器正常工作

VB.NET的源生成器需要满足以下配置条件:

  • 项目需使用Visual Studio 2019 16.8及以上版本(源生成器对VB的完整支持从该版本开始)
  • 项目目标框架需为.NET 5+或.NET Framework 4.6.2+(旧框架不支持源生成器机制)
  • 检查项目文件(.vbproj)是否包含必要配置,若没有可手动添加:
    <PropertyGroup>
        <LangVersion>16.0</LangVersion>
        <EnableDefaultCompileItems>true</EnableDefaultCompileItems>
    </PropertyGroup>
    

3. 验证生成的代码

若看不到自动生成的属性,可通过以下方式确认:

  • 右键项目 → 选择「查看生成的代码」
  • 在生成代码目录中找到CommunityToolkit.Mvvm相关的生成文件,里面会包含自动生成的属性及INotifyPropertyChanged通知逻辑
  • 若未生成,尝试清理项目缓存后重建(菜单「生成」→「清理解决方案」→「生成解决方案」)

内容的提问来源于stack exchange,提问作者Pedro Gaspar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 15:32:37