繁体   English   中英

.NET自定义Xml序列化

[英].NET Custom Xml Serialization

我正在研究一些需要序列化/反序列化为xml的类,这些类可用于配置。 这是我正在尝试做的一个示例

[Serializable]
public class MyConfig
{
    [XmlElement] 
    public string ConfigOption { get; set; }
    [XmlElement] 
    public Uri SomeUri { get; set; }
}

我想重写Uri属性被序列化的方式。 所以当调用serialize方法时,我希望它看起来像这样

<MyConfig>
  <ConfigOption></ConfigOption>
  <SomeUri uri="" />
</MyConfig>

有没有办法插入.net序列化并覆盖所有Uri对象如何序列化和反序列化? 请注意,我不想创建一个名为MyUri的类并将其用作SomeUri的类型,我只想插入序列化Uri类型的序列化并覆盖该行为的地方。

public class MyConfig
{
    [XmlElement] 
    public string ConfigOption { get; set; }
    [XmlElement] 
    public MyUri SomeUri { get; set; }
}

public class MyUri
{
    [XmlAttribute(Name="uri")]
    public Uri SomeUri { get; set; }
}

因为您不想为Uri创建新的包装器类,所以我认为唯一的选择是MyConfig实现IXmlSerializable ,以便完全控制XML序列化过程。

但是,如果执行此操作,则将采用全有或全无的方法,因为您将需要完全实现序列化,而不仅是Uri属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM