我正在尝试制作角度课程。当我将此类序列化为 xml 时,我想关注:
<Angle Unit="Degree">90</Angle>
or
<Angle Unit="Radian">3.14......</Angle>
目前,当我序列化我的课程时,我得到以下信息:
<Angle Unit="Degree">
<Degree>90</Degree>
</Angle>
or
<Angle Unit="Radian">
<Radian>90</Radian>
</Angle>
我知道带有 [XmlText] 的字符串是可能的,但是有没有一种方法可以使用双精度值或其他值而无需自定义 xmlwrite 和 xmlread?
下面显示了我的类代码的一部分:
[Serializable]
public struct Angle
{
[XmlAttribute]
public UnitType Unit;
public double Radian
{
get;
set;
}
public bool ShouldSerializeRadian();
public double Degree
{
get;
set;
}
public bool ShouldSerializeDegree();
}
使用 Unit 和 shouldSerialize 我选择要使用的值。
当我设置度数 = 90 时,弧度的值为 1.5707 ...
UnitType
是具有度数和弧度的枚举。is unit = unittype.degree
degree 将在序列化时使用,而unit = unittype.radian
radiin 将在序列化时使用。
我用来选择我使用的表示的代码如下:
public bool ShouldSerializeRadian()
{
return (Unit == UnitType.Radian);
}