У меня есть собственный класс фракций, который я использую на протяжении всего моего проекта. Это просто, он состоит из одного конструктора, принимает два ints и сохраняет их. Я хотел бы использовать DataContractSerializer для сериализации моих объектов, используемых в моем проекте, некоторые из которых включают в себя поля Fractions. В идеале я хотел бы иметь возможность сериализовать такие объекты, как это:Сериализация в XML через DataContract: пользовательский вывод?
<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 будет в порядке.
Не могли бы вы объяснить, почему * вы предпочтете вывод в этом формате? Это может привести к более уместным ответам или указать вам направление, о котором вы не думали. – shaunmartin
@shaunmartin Хороший вопрос, перечитывая мой вопрос, я был немного расплывчатым. Я немного отредактирую. –