在我的项目(Windows Phone 8.1 应用程序)上运行代码分析时,出现以下警告:
CA1303 不要将文字作为本地化参数传递 方法“Common.TranslateError(String)”将文字字符串作为调用“XDocument.Parse(String)”的参数“text”传递。请改为从资源表中检索以下字符串。
这是我的方法:
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:不要将文字作为本地化参数传递 https://msdn.microsoft.com/en-us/library/ms182187.aspx但是我无法引用ResourceManager
。如果我可以参考它,我仍然不明白为什么在将字符串传递给时这是一个问题XDocument.Parse
.
我想解决这个警告而不是压制它。有谁知道如何解决这个问题或者为什么存在这样的警告?
如果您想复制,则需要配置要使用的规则集微软所有规则:
然后运行分析选择ANALYZE从 Visual Studio 菜单中选择运行代码分析...
正如 @RyanRoos 所建议的,这段代码解决了警告:
Public Function TranslateError(ByVal exMessage As String) As XDocument
Dim sb As New StringBuilder("<Response><Exception><Message><![CDATA[" & XmlConvert.EncodeName(exMessage) & "]]></Message></Exception></Response>")
Return XDocument.Parse(sb.ToString())
End Function
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)