| 属性 | 值 |
|---|---|
| 规则 ID | CA1727 |
| 标题 | 将 PascalCase 用于已命名占位符 |
| 类别 | 命名 |
| 修复是中断修复还是非中断修复 | 非中断 |
| 在 .NET 9 中默认启用 | 否 |
原因
与 ILogger 配合使用的命名占位符不是 PascalCase。
规则说明
与 ILogger 配合使用的命名占位符应为 PascalCase,这是一个命名约定,要求名称中每个复合词的第一个字母大写。 对于结构化日志记录,建议使用此命名约定,将每个命名占位符都用作结构化数据中的属性名称。
如何解决冲突
将 PascalCase 用于已命名占位符。 例如,将 {firstName} 更改为 {FirstName}。
Example
public class UserService
{
private readonly ILogger<UserService> _logger;
public UserService(ILogger<UserService> logger)
{
_logger = logger;
}
public void Create(string firstName, string lastName)
{
// This code violates the rule.
_logger.LogInformation("Creating user {firstName} {lastName}", firstName, lastName);
// This code satisfies the rule.
_logger.LogInformation("Creating user {FirstName} {LastName}", firstName, lastName);
}
}
何时禁止显示警告
禁止显示此规则的警告是安全的。
抑制警告
如果只想抑制单个冲突,请将预处理器指令添加到源文件以禁用该规则,然后重新启用该规则。
#pragma warning disable CA1727
// The code that's violating the rule is on this line.
#pragma warning restore CA1727
若要对文件、文件夹或项目禁用该规则,请在none中将其严重性设置为 。
[*.{cs,vb}]
dotnet_diagnostic.CA1727.severity = none
有关详细信息,请参阅如何禁止显示代码分析警告。