Итак, 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 каким-то образом установить необходимую коллекцию, но мне также нужно ограничить пользователей.