C Sharp сериализует XML с HTML-сущностями - PullRequest
1 голос
/ 23 июля 2010

У меня есть строка в базе данных, которая содержит угловые скобки (меньше / больше, чем).Мне нужно вставить строку в XElement, а затем сериализовать его на клиентское устройство.Теперь html-сущности, очевидно, кодируются, поэтому квадратные скобки отображаются в виде <и>, и лучшим способом может быть использование HttpUtility.HtmlDecode для декодирования сущностей обратно на клиентское устройство.Но мне интересно, есть ли способ избежать кодировки и отправить эти объекты как есть?

Ответы [ 2 ]

0 голосов
/ 23 июля 2010

Если вы установите свойство XElement.Value, то да, оно будет закодировано при сериализации. Но когда вы десериализуете его на клиенте и получите доступ к свойству XElement.Value, оно будет не закодировано. Посмотрите этот быстрый образец:

var htmlData = "<some data>";
XElement element = new XElement("data");
element.Value = htmlData;

var xml = element.ToString();
var data = element.Value;
if (data != htmlData)
    throw new NotImplementedException("this didn't work");

Если вы установите точку останова, вы увидите, что переменная 'xml' содержит закодированную строку html.

0 голосов
/ 23 июля 2010

Использование SecurityElement.Escape Метод

...