Product
является свойством CartLine
, а не ShoppingCart
.Чтобы получить доступ к этому свойству, вашей переменной shoppingcart
потребуется по крайней мере один или несколько CartLine
объектов, к которым можно получить доступ через свойство indexer, и вместо этого вы будете обращаться к этому конкретному объекту:
var shoppingCart = new ShoppingCart();
shoppingCart[0] = new CartLine { CartLineId = 100, Product = GetTestProduct(), Quantity = 1 };
Console.WriteLine(shoppingCart[0].Product.ToString());
В качестве альтернативы, поскольку ShoppingCart
предназначен как тип модели, может быть лучше, чтобы он не основывался на List<T>
.Вместо этого попробуйте что-то вроде этого:
class ShoppingCart
{
public IList<CartLine> Items { get; } = new List<CartLine>();
public ShoppingCart() {}
}
В этом случае вы получите доступ к продукту первого элемента, например так:
shoppingCart.Items[0].Product