私は以下のクラスがあります。staticメソッドの戻り基底クラスのインスタンス
//some base class
public abstract class MyObject<T>{
public static T FromObject(object anotherObject){
var t = Activator.CreateInstance<T>();
// some reflection logic here
return t;
}
}
public class Product: MyObject<Product>{
}
public class ProductCart: MyObject<ProductCart>{
public ICollection<Product> Products{get;set;}
}
public class Basket: ProductCart{
public int BasketId{get;set;}
}
public class Order: ProductCart{
public int OrderId{get;set;}
}
をだから今、私はこのように私のモデルを構築することができ:
var products = serviceContext.Products.Select(Product.FromObject).ToList(); // no problem here
var basket = Basket.FromObject(serviceContext.Basket); // problem is here - instance of ProductCart is returned
var order = Order.FromObject(serviceContext.Order); // same problem, instance of ProductCart
何とかそれを解決し、変換を取得する方法はありますベースカートの代わりにバスケットとオーダー?
目標は次のとおりです。助けるため
var basket = Basket.FromObject(serviceContext.Basket); // return instance of Basket inherited from ProductCart
感謝。
こんにちは!私は最初の部分(クラス定義を変更する)が解決策だと思います。それは今のように見えます! – DolceVita