我跑我的项目代码分析(这是一款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组装这些值并将其传递给解析函数是一个快速解决方法,解决了警告。 –