У меня есть два класса в двух отдельных библиотеках (одна VB, одна C #):
Public Class Item
...
Public Overridable ReadOnly Property TotalPrice() As String
Get
Return FormatCurrency(Price + SelectedOptionsTotal())
End Get
End Property
End Class
и
public class DerivedItem : Item {
...
public new Decimal TotalPrice
{
get { return Price + OptionsPrice; }
}
}
Как видите, DerivedItem.TotalPrice
затеняет Item.TotalPrice
собственность.Однако при попытке получить значение DerivedItem.TotalPrice
я все еще получаю значение TotalPrice
базового объекта.
Почему свойство DerivedItem
не возвращается?
РЕДАКТИРОВАТЬ
Я действительно обнаружил проблему!Я получаю неправильное значение в строке JSON, возвращаемой через AJAX.Оказывается, что TotalPrice
- это , возвращаемый правильно, он просто перезаписывается вызовом свойства shadowed, сделанным позже в строке JSON.Мой новый вопрос - как предотвратить сериализацию свойства shadowed?
(Этот вопрос был переписан здесь )