Тестовый код примерно такой:
var array = new[] {"aaaaaaaaa", "bbbbbbbbb", "ccccccccc"};
var join = string.Join(Environment.NewLine, array);
var xml = string.Format("<root attr=\"{0}\">{0}</root>", join);
var xe = XElement.Parse(xml);
var attr = xe.FirstAttribute.Value;
var value = xe.Value;
Значения attr и value ожидаю увидеть равными join... ан нет
в attr символы перевода строки (\r\n) заменены пробелом,
а в value остались только \n, \r куда-то пропали.
Это глюк, или так и должно быть?
И, самое главное — как с этим бороться?
.NET 4.0