나는 다음과 같은 클래스가 :이처럼 내 모델을 만들 수 그래서 지금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
어떻게 든 그것을 해결 및 변환 얻을 수있는 방법이 있나요 기본 ProductCart 대신 바구니 및 주문?
목표는 다음과 같습니다 돕는
var basket = Basket.FromObject(serviceContext.Basket); // return instance of Basket inherited from ProductCart
감사합니다. 당신은 클래스 정의를 변경할 수있는 경우
안녕하세요! 첫 번째 부분 (클래스 정의 변경)이 해결책이라고 생각합니다. 지금 작동하는 것처럼 보입니다! – DolceVita