我跑我的項目代碼分析(這是一款Windows Phone 8.1的應用程序)時,以下警告:不通過文字本地化參數
CA1303不通過文字本地化參數法「常見.TranslateError(String)'將一個文字字符串作爲參數'text'傳遞給'XDocument.Parse(String)'。相反,從資源表中檢索以下字符串。
這是我的方法:
Public Function TranslateError(ByVal exMessage As String) As XDocument
Return XDocument.Parse("<Response><Exception><Message><" & XmlConvert.EncodeName(exMessage) & "></Message></Exception></Response>")
End Function
代碼工作,這不是什麼我已經因爲添加的代碼來解決然而這警告讓我相信,我不這樣做很正確的東西。
我已經做了一些研究,並發現MSDN的動作CA1303: Do not pass literals as localized parameters但我不能參考ResourceManager
。如果我可以參考,我仍然不明白爲什麼這是一個問題時,將字符串傳遞到XDocument.Parse
。
我想解決警告,而不是壓制它。有沒有人有任何想法我可以解決這個問題或爲什麼存在這樣的警告?
如果要複製您需要配置規則集使用微軟所有規則:
然後運行分析選擇從Visual Studio菜單ANALYZE和選擇運行代碼分析...
我看了一下它,複製一下你看到的並得到了相同的結果。在進行一些調整之後,似乎更多的問題是Parse函數的命名參數是「文本」,而不是您控制的任何內容。如果您不能使用ResourceManager加載字符串值以進行輸入,那麼使用StringBuilder組裝這些值並將其傳遞給解析函數是一個快速解決方法,解決了警告。 –