我在我的C#代码中添加了一条日志消息:
Log.Info("Why no complaint about this nonlocalized string?");
正如它所表明的那样,我没有收到ReSharper或Microsoft Code Analysis关于我使用非本地化字符串这一事实的投诉。我认为我有些事情要抱怨本地化问题:
对于ReSharper,我将项目的“Localizable”设置为“Yes”,将“Localizable Inspector”设置为“Pessimistic”。
对于Microsoft Code Analysis,我将项目的规则集设置为“Microsoft All Rules”。
我肯定得到了至少其中一个人的抱怨,我认为他们两个人,过去关于这样的事情,(我认为)这些相同的设置。我错过了什么吗?
“属性”窗格中项目的“可本地化”设置的少量描述显示“默认情况下,如果项目中有一个或多个资源文件,则ReSharper仅突出显示可本地化的项目。”我将“Localizable”设置为“Yes”,而不是“Default”,所以看起来这应该不适用于我(我很确定它在过去的类似情况下不适用于我),但它是一个尚未拥有资源文件的全新项目,因此我决定添加一个以查看它是否有用。它没有 - 问题仍然存在。
我正在使用VS2012和ReSharper Ultimate 10.0.2。我过去使用过这些产品/版本的精确组合,并在这些方面取得了成功。
UPDATE:好像它与Log.Info有关? ReSharper会抱怨以下任何一行:
var blah = "Why no complaint about this nonlocalized string?";
System.Console.WriteLine("Why no complaint about this nonlocalized string?");
但不会抱怨这个:
Log.Info("Why no complaint about this nonlocalized string?");
有趣的是, 会抱怨这个:
Log.Info("Why no complaint about this nonlocalized string? {0}", blah);
“Log”是一个NLog.Logger,在类中定义如下:
private static readonly Logger Log = LogManager.GetCurrentClassLogger();
答案 0 :(得分:2)
Log.Info
具有[Localizable(false)]
属性:
public void Info([Localizable(false)] string message)