【发布时间】:2011-08-23 05:37:45
【问题描述】:
假设我们有一个可以被 XmlSerializer 序列化/反序列化的类。应该是这样的:
[XmlRoot("ObjectSummary")]
public class Summary
{
public string Name {get;set;}
public string IsValid {get;set;}
}
我们有一个像这样的xml:
<ObjectSummary>
<Name>some name</Name>
<IsValid>Y</IsValid>
<ObjectSummary>
使用布尔属性 IsValid 而不是字符串属性是更好的决定,但在这种情况下,我们需要添加一些额外的逻辑来将数据从字符串转换为布尔值。
解决此问题的简单直接的方法是使用附加属性并将一些转换逻辑放入 IsValid getter。
谁能提出更好的决定?以某种方式或类似的方式在属性中使用类型转换器?
【问题讨论】:
-
你的问题我不清楚。你为什么不使用布尔值?
-
OP 希望将 IsValid 设为布尔值,但输出 Y 和 N 而不是 false 和 true。
-
这是一个关于 bool 的好问题 :) 我确实认为使用 bool 属性是一个非常合乎逻辑的决定,但不幸的是上面描述的 xml 来自外部系统,所以我没有能力改变任何东西。很可悲,不是吗? :)
标签: c# .net xml-serialization