XmlTextAtTribute прерывает форматирование при сериализацииC#

Место общения программистов C#
Ответить
Anonymous
 XmlTextAtTribute прерывает форматирование при сериализации

Сообщение Anonymous »

Я пытаюсь вывести XML для ввода в стороннюю библиотеку, которая нуждается в следующем формате (упрощенное и без объявления XML) < /p>

ImportantText
123
1.23

< /code>
Использование функции Visual Studio «Создать класс из XML».[Serializable()]
public class root
{
private int intField;
private double doubField;
private string textField;

public int IntegerVal
{
get => intField; set => intField = value;
}

public double DoubleVal
{
get => doubField; set => doubField = value;
}

[XmlText]
public string Text
{
get => textField; set => textField = value;
}
}
< /code>
Тем не менее, это выводит следующий XML, с важным текстом, и не отформатирован правильно (нет новых линий между важным текстом и «doubleval» и «root», закрывающие теги) < /p>

123
1.23ImportantText
< /code>
Я прочитал, что порядок свойств в классе имеет значение, поэтому я попытался изменить заказ как таковой: < /p>
[Serializable()]
public class root
{
private string textField;
// Same int/double as prev example

[XmlText]
public string Text
{
get => textField; set => textField = value;
}

// Same int/double as prev example

}
< /code>
К сожалению, это сделало выход еще хуже, и все на одной строке: < /p>
ImportantText1231.23
< /code>
Я сериализую класс с Xmlserializer и пытался написать как с помощью Streathlirter, так и с XMLWriter (с его настройками. Indent = true), но я не могу получить важный текст для вывода в качестве первого элемента, не сломав оставшуюся форматирование класса. Линия за линией вместо «умного» десериализации, поэтому все, что кроме моего первого примера формата, не читается должным образом (и да, мне нужно использовать эту стороннюю библиотеку). < /p>
Кто-нибудь знает, что здесь происходит? Это ожидаемое поведение с атрибутом [XMLText]? Я пытаюсь придерживаться встроенной сериализации CSHARP вместо реализации пользовательской сериализации, так как фактические классы довольно велики, и было бы чрезвычайно трудоемким, чтобы сериализовать все.


Подробнее здесь: https://stackoverflow.com/questions/797 ... erializing
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»