这应该很容易。我有一个像下面这样逃脱的字符串:
string originalString = "M&M";
string escapedString = System.Security.SecurityElement.Escape(originalString);//M&M
到目前为止很好
string unEscapedString = System.Security.SecurityElement.FromString(escapedString).Text;
期望回到M&M,但得到“未设置对象”
假定字符串应为xml格式,那么在这种情况下我应做的任何帮助都将有所帮助。
答案 0 :(得分:5)
您可以使用System.Net.WebUtility
类的静态HtmlDecode
方法执行此操作:
string original = "M&M";
string escaped = System.Security.SecurityElement.Escape(original);
string unescaped = System.Net.WebUtility.HtmlDecode(escaped);
您的代码无法正常运行的原因是因为FromString
方法需要有效的xml。请参阅文档here:
参数
xml
String
创建安全元素的XML编码字符串。
如果在字符串周围添加xml标记,则可以使代码示例工作:
string unescaped = SecurityElement.FromString($"<x>{escaped}</x>").Text;