ОК, поэтому 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 () для IList (он не содержит этот метод).
Как бы вы порекомендовали решить эту ситуацию?Мне просто нужно, чтобы NHibernate каким-то образом установил нужную коллекцию, но мне также нужно ограничить пользователей.