gpt4 book ai didi

c# - 重写属性上的 .net XmlSerializer

转载 作者:IT王子 更新时间:2023-10-29 04:33:56 28 4
gpt4 key购买 nike

我有一个带有抽象属性的基类:

public abstract int ID {get;set;}

现在,我有一个子类,它是 XmlSerialized。所以,它有:

[XmlElement("something")]
public override int ID {
get { //... }
set { //... }
}

我不能将 XmlElement 属性移动到基类,因为每个子类都有不同的 xml 元素名称。

现在,当我反序列化这个类时,出现以下错误:

Member 'Subclass.ID' hides inherited member 'BaseClass.ID', but has different custom attributes.

我能做什么?

最佳答案

当覆盖的属性具有 [XmlElement][XmlAttribute] 属性时,派生类型的序列化和反序列化通过添加 [XmlIgnore] 属性。

基类可以抽象化,这样它就永远不会被实例化,因此也不会被序列化或反序列化。

[Serializable]
public abstract class Base
{
[XmlIgnore]
public abstract Int32 ID { get; set; }
}

关于c# - 重写属性上的 .net XmlSerializer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4898180/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com