【发布时间】:2011-04-30 12:48:28
【问题描述】:
我有一个自定义的 Fraction 类,我在整个项目中都在使用它。这很简单,它由一个构造函数组成,接受两个整数并存储它们。我想使用 DataContractSerializer 来序列化我在项目中使用的对象,其中一些包含 Fractions 作为字段。理想情况下,我希望能够像这样序列化这样的对象:
<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 文件可供用户编辑(我将它们用作音乐游戏的输入,它们本质上充当记事本),并希望将符号保留为对最终用户来说尽可能简洁,因此他们不需要处理尽可能多的文本墙。
编辑:我还应该注意,我目前的 Fraction 类是不可变的(所有字段都是 readonly),因此无法更改现有 Fraction 的状态.不过,返回一个新的 Fraction 对象就可以了。
【问题讨论】:
-
您介意解释一下为什么您更喜欢这种格式的输出吗?它可能会产生更中肯的答案,或者为您指明一个您没有想到的方向。
-
@shaunmartin 好点,重读我的问题我有点含糊。我稍后会编辑。
标签: c# serialization xml-serialization datacontractserializer