Тест № 1:
var xmlText = @"<Test>&</Test>";
var xml = XDocument.Parse(xmlText);
var result = xml.Element("Test").Value;
result
не будет &
, результат будет "
.Таким образом, Contains("&")
никогда не будет истинным.
Тест # 2:
var xmlText = @"<Test>
</Test>";
var xml = XDocument.Parse(xmlText);
var result = Encoding.Unicode.GetBytes(xml.Element("Test").Value);
результат будет двух байтов: x20
и x29
, что в точности соответствует тому, что читается из XML,Итак, байты есть, вы их просто не видите, так как этот символ Unicode не читается.