C# ReSharper批注中的命名格式占位符?
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
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链接:
我的理解是,他们在实现中不知何故使用了
string.Format()
,这就是为什么只支持整数。似乎Serilog添加了一个自定义属性:MessageTemplateFormatMethod
由他们使用,由他们使用。||