XAttribute.SetValue 转换“

XAttribute.SetValue converts "

在我的应用程序中,我使用 XAttribute.SetValue(...) 来设置 xml 属性的值。该值由用户提供。

我有以下方法来设置属性值:

private void SetValue(XAttribute attribute, string input)
{
    attribute.SetValue(input);
}

如果输入是Hello "World"那么属性的值是:Hello "World"

这是我所期望的。

如果输入已经是 "masked" 就像 Hello "World" 那么属性的值是:Hello "World"

不正确。

有没有办法避免这种转换?

您无法阻止SetValue& 等字符编码为实体代码。因此,为了避免它们被双重编码,您可以确保您的输入没有被编码。您可以使用:

System.Net.WebUtility.HtmlDocode(input)

或者,如果您已经参考了 System.Web

System.Web.HttpUtility.HtmlDecode(input)