C# ReSharper批注中的命名格式占位符?

C# ReSharper批注中的命名格式占位符?,c#,annotations,resharper,string.format,C#,Annotations,Resharper,String.format,ReSharper具有奇妙的StringFormatMethodAttribute注释,它为格式字符串及其参数提供代码分析。它可以添加到任何自定义字符串格式方法中,如下所示: [StringFormatMethod("format")] void DebugFormat(string format, params object[] args); x.DebugFormat("ReSharper is {Quality} for {Style} placeholde

ReSharper具有奇妙的
StringFormatMethodAttribute
注释,它为格式字符串及其参数提供代码分析。它可以添加到任何自定义字符串格式方法中,如下所示:

[StringFormatMethod("format")]
void DebugFormat(string format, params object[] args);
x.DebugFormat("ReSharper is {Quality} for {Style} placeholders", "poor?", "named");
这在使用整数占位符时效果很好,例如:

x.DebugFormat("ReSharper is {0} for {1} placeholders", "great", "numbered");
然而,有些库(如和)提供了命名格式占位符,用于(语义结构化)日志记录,而这似乎是ReSharper(目前)没有提供的。例如,一行代码如下:

[StringFormatMethod("format")]
void DebugFormat(string format, params object[] args);
x.DebugFormat("ReSharper is {Quality} for {Style} placeholders", "poor?", "named");
结果显示ReSharper代码分析警告

格式项索引必须是从0开始的数字,且不带前导或尾随空格

在ReSharper支持、本网站和谷歌上的搜索都是空白。是否有人找到了一种方法来获取使用命名占位符的字符串格式注释

相关JetBrains链接:

我已经为此实现了一个R#扩展。从JetBrains下载

也是

此扩展突出显示结构化日志模板,并包含一些有用的分析器。以下是安装插件后结构化日志事件的外观:


我的理解是,他们在实现中不知何故使用了
string.Format()
,这就是为什么只支持整数。似乎Serilog添加了一个自定义属性:
MessageTemplateFormatMethod
由他们使用,由他们使用。||