Even if I explicitly mark a parameter as not needing localization, sonarqube still maintains that I should be using a resource string (S4055)
public void DoWork()
{
LogMessage(
"Debug", // This should *not* raise S4055
"My debug message" /* This is fine if it warns */);
}
public void LogMessage(
[Localizable(false)]string messageType,
string actualMessage)
{
switch (messageType)
{
case "Debug":
// handle debug
break;
case "Trace":
// etc.
break;
}
}
Even if I use a constant for the messageType
argument like so
LogMessage(MessageTypes.Debug, "My message");
Sonarlint/qube complains