好的,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)来限制向该列表添加内容,而不允许使用list.Add(someItem)。问题在于我使用了NHibernate,它要求使用IList接口,因此我无法将其强制转换/调用AsReadOnly()方法(它不包含此方法)。你会推荐什么方法来解决这种情况?我只需要一种方法让NHibernate以某种方式设置所需的集合,但我也需要限制用户。