【发布时间】:2011-08-29 08:06:19
【问题描述】:
好的,所以 List 包含 AsReadOnly(),它为您提供 ReadOnlyCollection。我需要的是有一个 IList 类型的字段,以及一个会为此列表返回 ReadOnlyCollection 的属性。
示例类:
class Test
{
private IList<Abc> list;
public AddToList(Abc someItem) { /* adds inside the list */... }
public ReadOnlyCollection<Abc> List { get { return ??? } } // <- no "set" here!
}
场景如下:当项目添加到列表中时,我需要在我的类中有一些自定义逻辑,并且我想通过调用 AddToList(someitem) 来限制添加到此列表,同时不允许使用列表.添加(一些项目)。问题是我使用 NHibernate,它需要 IList 接口,所以我不能在 IList 上转换/调用 AsReadOnly()(它不包含此方法)。
你会推荐什么方法来解决这种情况?我只需要一种方法让 NHibernate 以某种方式设置所需的集合,但我还需要限制用户。
【问题讨论】:
标签: c# .net nhibernate ilist readonly-collection