派生类的XMLSerialization

时间:2016-05-23 09:34:13

标签: c# .net serialization

我有两个类,一个是基类

public abstract class BaseBon : BaseRecord
{
    public BaseBon(Nat recordIndicator) : base(recordIndicator)
    {
    }

    /// <summary>
    /// Waehrungkennzeichen - CurrencyCode
    /// </summary>
    protected FixedString m_CurrencyCode = new FixedString(3);
    public String CurrencyCode
    {
        get { return m_CurrencyCode.Value; }
        set { m_CurrencyCode.Value = value; }
    }

}

和一个源自它的人。 派生类使用不同种类的currencyCode,因此我使用了new 告诉编译器它应该使用这个实现。 但是当我想序列化它时,它会在我的unitTest

中抛出一个错误
/// <summary>
/// Waehrungkennzeichen - CurrencyCode
/// </summary>
private new FixedInt m_CurrencyCode = new FixedInt(1);
[XmlElement("CurrencyCode_Small",typeof(CurrencyCode?))]
public new CurrencyCode? CurrencyCode
{
    get
    {
        CurrencyCode? val = null;
        Array values = Enum.GetValues(typeof(CurrencyCode));
        foreach (CurrencyCode value in values)
        {
            if (value.GetValue().Equals(m_CurrencyCode.Value))
            {
                val = value;
                break;
            }
        }
        return val;
    }
    set
    {
        if (!value.Equals(null))
        {
            m_CurrencyCode.Value = (int)value;
        }
    }
}

错误类型为System.InvalidOperationException。 我只能给你一个简短的翻译,因为我只有德语翻译。 该错误表明我屏蔽了基类的属性CurrencyCode,并且我应该使用XmlElementAttribute为它指定一个新名称。我该怎么办?因为我已经使用了XmlElement

0 个答案:

没有答案