我有一个最终保存在 xml 节点中的 TextBox。我正在使用 SecurityElement.Escape(string2Escape) 在保存 xml 之前转义无效字符。
问题:我尝试使用 IsValidText 来测试我是否需要运行转义方法,但它返回 ''' 和 '&' 为有效但是当你保存 xml 时系统 barfs 因为它们实际上是,无效。它似乎只在“<”或“>”上返回 false。
简单的解决方案,删除检查,但我的问题是为什么会这样?
以下是我失败的代码:
private string EscapeXML(string nodeText)
{
if (!SecurityElement.IsValidText(nodeText))
{
return SecurityElement.Escape(nodeText);
}
return nodeText;
}
最佳答案
这是我从 Reflector 得到的。
这可以解释为什么它的行为方式如此。我在 SecurityElement 中没有看到任何方法可以满足您的需求,但它很简单,您可以自己实现一个,也许可以作为一种扩展方法。
关于c# - SecurityElement.IsValidText 在 "&"上返回 true ... 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5018247/