【发布时间】:2020-04-27 22:35:10
【问题描述】:
我有一个父子类:
public class SharedCarBundle : SharedEntity, ISharedCarBundle, ISharedEntity
{
public SharedCarBundle();
public virtual SharedCar Car { get; set; }
}
public class CarBundle : SharedCarBundle, ISharedCarBundle, ICarAssigned
{
[Value]
public new virtual Car Car { get; set; }
/// <summary>
/// The Car the bundle is of
/// </summary>
ISharedCar ISharedCarBundle.Car
{
get
{
return Car;
}
set
{
Car = (Car)value;
}
}
}
在使用 Odata Get Request 时,我总是只取回父属性的 null 值,而不是子类中 Car 属性中的原始值。
我做错了什么,我应该怎么做才能检索到正确的值? 注意:虚拟属性不可更改。
【问题讨论】:
-
对不起,我没看懂你的源代码。 - 你在哪里实现虚拟属性“Car”的getter?
-
实际上这个虚拟属性覆盖了父接口 ISharedCarBundle 中的另一个属性,这就是我使用 new 关键字的原因。实现在这里: ISharedCar ISharedCarBundle.Car { get { return Car; } 设置 { 汽车 = (汽车) 价值;这里的 getter 检索上面带有值注释的 Car 对象。 @Michael Schönbauer