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

VS2019调试.NET Core3.1 Fluent Validation验证器无法查看变量值问题

Fluent Validation验证器运行时变量无法查看的解决方法

该问题的根本原因:Fluent Validation的验证规则定义代码是在验证器类实例化(一般为应用启动时的服务注册阶段)执行的,你在构造函数内的When、RuleFor定义行打断点,命中时还没有实际的业务请求传入,自然无法获取到Count、Offset等运行时的属性值。只有规则中的委托逻辑(比如When的条件判断、自定义验证逻辑)是每次处理请求时才会执行,此时会传入实际的请求实例。

你可以用以下几种方法排查:

  • 调整断点位置
    将断点打在规则的委托内部而非规则定义行,你可以把原有代码调整为带代码块的委托形式方便打断点:
    When(x => 
    {
        // 此处打断点即可直接查看当前请求实例x的所有属性,包括Count、Offset
        return x.Count != null && x.Count >= 0;
    }, () => 
    {
        RuleFor(x => x.Offset).NotNull().Must((req, offset) =>
        {
            // 此处也可打断点,同时查看请求实例req和当前验证的Offset值
            return Regex.IsMatch(offset?.ToString() ?? string.Empty, isNumber);
        }).WithErrorCode(errCode.somethingwrong);
    });
    
  • 修改VS2019调试配置
    打开顶部菜单「工具」>「选项」>「调试」>「常规」,做如下修改:
    • 取消勾选「启用仅我的代码」
    • 勾选「启用源服务器支持」
      调试命中断点后,手动在监视窗口添加x.Count、x.Offset即可查看值,不要直接拖拽代码定义里的变量,那是构造函数的形参,和运行时的请求实例不是同一个上下文。
  • 临时输出调试日志
    在需要查看值的委托内部插入调试输出代码:
    Debug.WriteLine($"Count: {x.Count}, Offset: {x.Offset}");
    
    调试时在VS的「输出」窗口即可看到每次验证时的变量值,排查完成后删除即可。

内容的提问来源于stack exchange,提问作者R M

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 17:24:05