string.Format в XElement не форматирует - PullRequest
2 голосов
/ 21 июня 2011

Я пытаюсь отформатировать элемент XML с тремя строками, дополненными до 10 символов пробелами. Вот код, который я использую.

В модели установлены три строки.

    public string a{ get; set; }
    public string b{ get; set; }
    public string c{ get; set; }

и затем отформатирован в XElement

var itemElement = new XElement("item",
                            new XElement("abc", string.Format("{0:-10}{1:-10}{2:-10}", i.a, i.b, i.c))
                    );

он должен производить "a (заполнение) b (заполнение) c (заполнение)", но производит "abc" внутри узла

Есть идеи?

Ответы [ 2 ]

3 голосов
/ 21 июня 2011

Правильный синтаксис String.Format - использовать запятую для выравнивания, а не двоеточие:

string.Format("{0,-10}{1,-10}{2,-10}", i.a, i.b, i.c)

За MSDN :

Синтаксис элемента формата: следующим образом:

{индекс [, длина] [: FormatString]}

0 голосов
/ 21 июня 2011

Попробуйте обернуть в элемент CData:

var itemElement = new XElement("item", 
    new XCData(
        new XElement("abc", string.Format("{0:-10}{1:-10}{2:-10}", i.a, i.b, i.c))));

Это необходимо, потому что пробелы не считаются значимыми синтаксическими анализаторами XML по умолчанию. Альтернативой использованию CData может быть атрибут xml: space , который также должен давать желаемый результат. См. эту страницу MSDN для подробностей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...