C# 获取XmlSerializer以忽略基类上的属性

C# 获取XmlSerializer以忽略基类上的属性,c#,.net,xml,serialization,C#,.net,Xml,Serialization,我有一个类(MyBasicHttpBinding),它继承自BasicHttpBinding,然后实现HttpBindingBase HttpBindingBase具有属性ProxyAddress 我想序列化MyBasicHttpBinding,但我想忽略HttpBindingBase.ProxyAddress 我在MyBasicHttpBinding上有一个名为ToXml()的方法,其实现如下所示: public string ToXml() { var overrides = new

我有一个类(
MyBasicHttpBinding
),它继承自
BasicHttpBinding
,然后实现
HttpBindingBase

HttpBindingBase
具有属性ProxyAddress

我想序列化
MyBasicHttpBinding
,但我想忽略
HttpBindingBase.ProxyAddress

我在
MyBasicHttpBinding
上有一个名为
ToXml()
的方法,其实现如下所示:

public string ToXml()
{
    var overrides = new XmlAttributeOverrides();
    overrides.Add(this.GetType(), "ProxyAddress", new XmlAttributes { XmlIgnore = true });

    var serializer = new XmlSerializer(this.GetType(), overrides);
    var builder = new StringBuilder();
    var writer = new StringWriter(builder);

    serializer.Serialize(writer, this);
    return builder.ToString();
}
我在添加覆盖位中尝试了
System.ServiceModel.BasicHttpBinding
,但也没有成功

我还尝试添加:

[XmlIgnore]
public bool ProxyAddressSpecified = false;
MyBasicHttpBinding
应序列化ProxyAddress()
方法

所有这些都没有停止尝试序列化HttpBindingBase.ProxyAddress的
XmlSerializer


因此,基本上我不想
HttpBindingBase.ProxyAddress
进行序列化,但无法解决如何进行序列化。

为什么不想对其进行序列化?它实际上是你们班的一部分。如果序列化基,它就会在那里。所以它应该存在于派生类型中。主要原因是它的类型Uri不序列化,并且由于我不需要序列化后属性的信息,我认为最简单的解决方案是忽略该属性。当您需要自定义序列化行为时(实际上并不是按原样序列化对象)您可以实现
IXmlSerializable
来只序列化您需要的信息。我想可能是这样的,我想上面的方法之一也可以完成这项工作,但我显然缺少一些理解。如果您知道为什么它们不能像我预期的那样工作,并且不介意解释为什么我会很感激。