我有两个类,一个是基类
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