Мне интересно, могу ли я настроить вывод xml так, как это делает ToString.Например, используйте% для вывода 80%, а не 0,8. Мне также нужно десериализовать его позже ...
Спасибо.
Не сериализуйте свойство с номером напрямую. Вместо этого создайте фиктивное свойство строки, которое форматирует и анализирует число:
[DataContract] public class MyClass { // No DataMember attribute here public double MyProperty { get; set; } // Serialize this property instead [DataMember(Name = "MyProperty")] private string MyPropertyXml { get { return MyProperty.ToString("P", CultureInfo.InvariantCulture); } set { if (string.IsNullOrEmpty(value)) { MyProperty = 0; } else { string s = value.TrimEnd('%', ' '); MyProperty = double.Parse(s, CultureInfo.InvariantCulture) / 100; } } } }
Создает следующий вывод:
<?xml version="1.0" encoding="utf-16"?> <MyClass xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/"> <MyProperty>42.00 %</MyProperty> </MyClass>