C# 序列化单元类的实例
我正在尝试序列化此类:C# 序列化单元类的实例,c#,serialization,C#,Serialization,我正在尝试序列化此类: [Serializable()] public class RadPaneSetting { public string ID; public string ParentID; public Unit Height; public Unit Width; public bool Collapsed; public PanePositions PanePosition; } 除了高度/宽度外,其他都写得很好。就在序列化之前,
[Serializable()]
public class RadPaneSetting
{
public string ID;
public string ParentID;
public Unit Height;
public Unit Width;
public bool Collapsed;
public PanePositions PanePosition;
}
除了高度/宽度外,其他都写得很好。就在序列化之前,我可以将高度视为单位(400,UnitType.Pixel),但它不会将其写入XML文件
我的XML:
<Value>
<RadPaneSetting xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<ID>RadPane_5c2c5136a0afaa4d65aa0adae5926751adf2</ID>
<ParentID>RadDockSplitter_bc10266da61e0a4cb9a9814a0e94357d3d50</ParentID>
<Height />
<Width />
<Collapsed>false</Collapsed>
<PanePosition>Top</PanePosition>
</RadPaneSetting>
</Value>
您需要自己序列化该类型。大概是这样的:
[XmlIgnore]
public Unit Height;
[XmlElement("Unit")]
public string HeightString
{
get {return Height.ToString();}
set {Height = Unit.Parse(value);}
}
请显示用于序列化的代码。另外,顺便说一句,
[Serializable]
对XML序列化程序并不重要。
[XmlIgnore]
public Unit Height;
[XmlElement("Unit")]
public string HeightString
{
get {return Height.ToString();}
set {Height = Unit.Parse(value);}
}