У меня есть строка в базе данных, которая содержит угловые скобки (меньше/больше). Мне нужно вставить строку в XElement, а затем сериализовать ее на клиентское устройство. Теперь объекты html, очевидно, кодируются, поэтому скобки отображаются как ‹ и ›, и лучший способ — использовать HttpUtility.HtmlDecode для декодирования объектов обратно на клиентском устройстве. Но мне интересно, есть ли способ избежать кодирования и отправить эти объекты как есть?
C Sharp сериализует XML с объектами HTML
Ответы (2)
Используйте метод SecurityElement.Escape.
person
Denis Palnitsky
schedule
23.07.2010
Это по-прежнему превращает его в lt; и гт; (не сохраняет как ‹ и ›)
- person Shahid; 23.07.2010
Вам нужно обработать это на клиенте. С ‹ и › xml будет искажен.
- person Denis Palnitsky; 23.07.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.
person
PatrickSteele
schedule
23.07.2010