CA1824:用 NeutralResourcesLanguageAttribute 标记程序集
属性 | 值 |
---|---|
规则 ID | CA1824 |
标题 | 用 NeutralResourcesLanguageAttribute 标记程序集 |
类别 | “性能” |
修复是中断修复还是非中断修复 | 非中断 |
在 .NET 8 中默认启用 | 作为建议 |
原因
程序集包含基于 ResX 的资源,但没有向其应用 System.Resources.NeutralResourcesLanguageAttribute。
规则说明
NeutralResourcesLanguageAttribute 属性通知应用默认区域性的资源控制器。 如果默认区域性的资源嵌入在应用的主程序集中,并且 ResourceManager 必须检索与默认区域性属于与同一区域性的资源,则 ResourceManager 会自动使用位于主程序集内的资源,而不是搜索附属程序集。 这样可绕过常用程序集探测,提高所加载的第一个资源的查找性能,并可缩小工作集。
提示
有关 ResourceManager 用于探测资源文件的过程,请参阅打包和部署资源。
解决冲突
若要解决此规则的冲突,请将属性添加到程序集,并指定非特定区域性的资源的语言。
指定资源的非特定语言
在“解决方案资源管理器”中,右键单击项目,然后选择“属性” 。
选择“包”选项卡。
注意
如果你的项目是一个 .NET Framework 项目,请选择“应用程序”选项卡,然后选择“程序集信息” 。
从“非特定语言”或程序集非特定语言”下拉列表中选择语言 。
选择“确定”。
何时禁止显示警告
允许禁止显示此规则发出的警告。 但是,启动性能可能会降低。 若要禁止显示此警告,请向 .globalconfig 或 .editorconfig 文件添加 dotnet_diagnostic.CA1824.severity = none
。
抑制警告
如果只想抑制单个冲突,请将预处理器指令添加到源文件以禁用该规则,然后重新启用该规则。
#pragma warning disable CA1824
// The code that's violating the rule is on this line.
#pragma warning restore CA1824
若要对文件、文件夹或项目禁用该规则,请在配置文件中将其严重性设置为 none
。
[*.{cs,vb}]
dotnet_diagnostic.CA1824.severity = none
有关详细信息,请参阅如何禁止显示代码分析警告。