タイプが一致しないため、new
を使用しないでください。 ?派生クラスプロパティを使用して仮想基本クラスプロパティをオーバーライドする方法
SearchBaseとResultBaseは、私のエンティティの80%で動作しますが、いくつかは特定の実装が必要です。
この主な問題は、new
を使用すると、コンパイル時にすべてタイプされ、デバッガでよく見えますが、System.Web.Mvc.Controller.Json()
にこのオブジェクトを渡すと問題が発生しているようです。
public class SearchBase<T>
{
public virtual ResultBase result { get; set; }
}
public class SearchImp : SearchBase<SearchImp>
{
public override ResultImp result { get; set; }
}
public class ResultBase
{
}
public class ResultImp : ResultBase
{
}
@PranayRana私はより良い実装方法についてはわかりません。私はどんな提案にも開放的です。 – user3953989
'' 'new'''キーワードを使ってプロパティをオーバーライドします...これはやや異なりますが、最後は同じです。 –
共分散を使ってこれを行うことができます - それを 'public class SearchBase'と宣言してください。しかし、私はそれがゲッターのためだけに働くと思う。 –