Страницы

Поиск по вопросам

суббота, 4 января 2020 г.

Как я могу в .net сериализовать GUID без дефисов?

#c_sharp #xml #serialize


Как я могу в .net сериализовать в формат XML GUID без дефисов?

Структура выходного документа не важна.

Необходимо, например, вместо 5c88f0fc-9edf-4428-9ee1-b28ba2a5f03c
получить 5c88f0fc9edf44289ee1b28ba2a5f03c
    


Ответы

Ответ 1



В качестве воркэраунда можно использовать такую конструкцию: public class Data { public int X { get; set; } [XmlIgnore] // это не сериализуем public Guid Y { get; set; } [XmlElement(ElementName = "Y")] // а вместо Y сериализуем вот это public string YSerializable { get => Y.ToString("N"); set => Y = Guid.Parse(value); } } Получаем XML: 1 0102030405060708090a0b0c0d0e0f10 Минус: лишнее свойство, нужное лишь для сериализации. В качестве альтернативы, можно реализовать IXmlSerializable. Но это, наверное, больше мороки.

Комментариев нет:

Отправить комментарий