2013-11-15 21 views
1

我得到的代碼分析警告CA1303:Microsoft.Globalization,「不要通過文字本地化參數」當我使用這樣的功能:禁用預警調用一個函數

Logger.Log("blabla"); 

我在很多地方使用這個調用,但不想爲這個調用得到警告,並且仍然使用文字作爲參數進行其他調用,所以禁用項目屬性中的警告不是一個選項。

我可以

[SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters")] 

禁用混凝土呼叫警告,但我需要使用它在每次調用Logger.Log()

有沒有辦法將Log()函數標記爲不觸發此警告?

class Logger{ 
    [Don't trigger CA1303 on calls to this function] 
    static void Log(String message){ 
     ... 
    } 
} 

回答

1

這可以通過裝飾任一方法或用[System.ComponentModel.LocalizableAttribute][1]指定它不是本地化參數來避免。例如:

public static void Log([Localizable(false)] string message) 
{ 
    //... 
}