當您有一個包含項目列表的對象時,如何管理這個簡單場景。 EG:便利性或「懶惰編程」IList管理 - 保護IList.Add方法
public class ContainerObject
{
IList<ChildObject> Children { get; }
public void AddCustom(ChildObject toAdd)
{
// Some validation ...
Children.Add(toAdd);
}
}
假設集合初始化爲IList中的實現,有沒有辦法在其中控制對象被添加到列表的方式嗎?
例如,我有一個ContainerObject類的另一個方法,它接受一個ChildObject並將其添加到列表中。在添加它之前,需要此方法對ChildObject執行一些基本驗證。
我很懶,因爲我不想搞亂並編寫一個消費開發者需要實現的自定義列表接口(沒有添加方法)。我也在IQueryable接口上使用ToList()方法,所以這是堅持使用IList的另一個原因 - 它只是起作用。
那麼,有沒有一種方法可以監控如何將項目添加到IList實例,即阻止使用Add方法,並且只允許通過我的自定義方法添加到集合中,或者我只是要求不可能? ...和懶惰:(
我能想到的,其中檢查項目時,通過我的自定義方法或直接在列表上添加但這些似乎哈克幾個哈克方法!
任何人都遇到類似的事情如果是這樣,你做了什麼?
對不起喬恩,你能否更詳細地解釋緩存評論?謝謝 – 2009-02-16 19:03:48