Почему вы думаете, что вы должны написать это как буквальную строку? Это не так. Кроме того, вы вообще не пишете ее как буквальную строку, это все еще значение динамической строки, только если вы добавили кавычки вокруг него.
Литеральная строка - это строка, которая написана буквально в коде, например "Hello world"
. Если вы получаете строку любым другим способом, это не буквальная строка.
Кавычки, которые вы добавили в строку, просто добавляют кавычки к значению, они больше ничего не делают со строкой. Вы можете добавить строку с кавычками просто отлично:
new XElement("MethodName", Extractor.GetMethodBody(rule.RuleScript, "MethodName"))
Теперь символы, которые кодируются, когда они помещаются в XML, объясняются тем, что им необходимо кодировать . Вы не можете поместить символ <
в значение без его кодирования.
Если вы покажете XML, вы увидите закодированные значения, и это всего лишь знак того, что он работает так, как должен. Когда вы читаете XML, закодированные символы будут декодированы, и вы получите исходную строку.