我在我的程序中實現了延遲加載。它是通過代理類來完成,如:延遲加載實現的問題
class Order
{
public virtual IList<Item> Items {get; set;}
}
class OrderProxy
{
public override IList<Item> Items
{
get
{
if (base.Items == null)
Items = GetItems(base.OrderID);
return base.Items;
}
set { base.Items = value; }
}
}
的問題是,每當我實例化代理類,甚至沒有觸及項目屬性,它會嘗試加載項!
正如您所知,我想實例化代理類並將實例返回到BLL而不是域對象本身。
有什麼問題?
.NET CLR在類的任何時候訪問(讀取)屬性嗎?
任何其他方法?
感謝
假設沒有代碼嘗試設置到建設項目,做的是,在基類的項目是一個自動實現的屬性有什麼關係這種行爲? – 2010-12-23 16:57:17
沒關係,只是在我自己的示例項目中嘗試了這一點,我的項目沒有被實例化。但是,無論您是測試它的值還是在調試器中查看它,它都會獲取。 – 2010-12-23 17:01:10