好的,所以 List<> 包含为您提供 ReadOnlyCollection 的 AsReadOnly()。我需要的是有一个 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) 来限制添加到此列表,同时不允许使用 list.Add(一些项目)。问题是我使用NHibernate需要IList 接口,所以我不能在 IList 上转换/调用 AsReadOnly() (它不包含此方法)。
你会推荐什么方法来解决这种情况?我只需要一种方法让 NHibernate 以某种方式设置所需的集合,但我还需要限制用户。