У меня есть собственный класс Fraction, который я использую во всем своем проекте. Все просто, он состоит из одного конструктора, принимает два целых числа и сохраняет их. Я хотел бы использовать DataContractSerializer для сериализации моих объектов, используемых в моем проекте, некоторые из которых включают дроби в качестве полей. В идеале я хотел бы иметь возможность сериализовать такие объекты следующим образом:
<Object>
...
<Frac>1/2</Frac> // "1/2" would get converted back into a Fraction on deserialization.
...
</Object>
В отличие от этого:
<Object>
...
<Frac>
<Numerator>1</Numerator>
<Denominator>2</Denominator>
</Frac>
...
</Object>
Есть ли способ сделать это с помощью DataContracts?
Я хотел бы сделать это, потому что я планирую сделать XML-файлы редактируемыми пользователем (я использую их в качестве входных данных для музыкальной игры, и они, по сути, действуют как блокноты), и хочу, чтобы обозначения были как можно более краткими. для конечного пользователя, поэтому им не нужно будет иметь дело с таким количеством стен текста.
EDIT: я также должен отметить, что в настоящее время мой класс Fraction является неизменяемым (все поля readonly
), поэтому возможность изменить состояние существующей фракции невозможна. Однако возвращение нового объекта Fraction было бы в порядке.