[英]How to serialize object's property to XML element's attribute?
我创建了一个可序列化的对象,我想将其序列化为XML,然后反序列化。 我想要的不过是将该对象的一个属性另存为XML属性。 这是我的意思:
[Serializable]
public class ProgramInfo
{
public string Name { get; set; }
public Version Version { get; set; }
}
public class Version
{
public int Major { get; set; }
public int Minor { get; set; }
public int Build { get; set; }
}
我想将ProgramInfo保存为如下所示的XML文件:
<?xml version="1.0" encoding="utf-8" ?>
<ProgramInfo Name="MyApp" Version="1.00.0000">
</ProgramInfo>
注意XML中的Version属性及其对应的属性。 我已经有了解析器,可以将字符串“ 1.00.0000”转换为有效的Version对象,反之亦然,但是我不知道如何将其用于此XML序列化方案。
您需要的是一个被序列化的字符串表示形式的属性:
[Serializable]
public class ProgramInfo
{
[XmlAttribute]
public string Name { get; set; }
[XmlIgnore]
public Version Version { get; set; }
[XmlAttribute("Version")
public string VersionString
{
get { return this.Version.ToString(); }
set{ this.Version = Parse(value);}
}
}
您可以做的是拥有一个VersionValue和一个VersionType属性
[Serializable]
public class ProgramInfo
{
private string _versionValue;
public string Name { get; set; }
public string VersionValue
{
get
{
return _versionValue;
}
set{
_versionValue = value;
//Private method to parse
VersonType = parseAndReturnVersionType(value);
}
}
public Version VersionType { get; set; }
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.