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

.NET6 Blazor资源文件异常:GlobalResources无静态属性‘RequiredField’

问题成因分析

1. 资源类及属性的访问权限不足

尽管你将资源文件的自定义工具设为PublicResXFileCodeGenerator,但仍需确认生成的GlobalResources类及对应属性的访问修饰符:

  • 打开V2.Resources项目中自动生成的GlobalResources.Designer.cs文件,检查类是否为public class GlobalResources,同时RequiredField属性是否为public static string。
  • 如果类或属性是internal修饰,作为独立类库的V2.Models项目将无法通过反射访问到该静态属性,从而抛出异常。

2. 项目引用关系不明确

Blazor Server项目能正常访问资源,是因为它通过依赖注入的本地化上下文(如IStringLocalizer)加载资源,而DataAnnotations验证是通过反射直接查找资源类的静态属性,对访问逻辑的要求更严格:

  • 需确保V2.Models项目直接引用V2.Resources项目,而非通过Blazor项目间接引用。间接引用会导致资源类在Models项目的编译上下文里不可见,反射无法找到目标属性。

3. 资源代码生成不完整或有误

  • 检查GlobalResources.resx文件中是否确实存在RequiredField这个资源键,避免拼写错误。
  • 确认修改资源文件后重新编译了V2.Resources项目,若生成器未重新生成Designer.cs文件,会导致静态属性未被正确创建,反射自然找不到对应属性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 02:09:56