私はAngleクラスを作ろうとしています。このクラスを 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 を作成する必要なく、double またはその他の値を取得する方法はありますか?
以下は私のクラスコードの一部を示しています:
[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
radain は連載時に使用されます。
私が使用する表現を選択するために使用するコードは次のとおりです。
public bool ShouldSerializeRadian()
{
return (Unit == UnitType.Radian);
}