Вернуть ReadOnlyCollection из IList <>

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

12
задан Denis Biondic 29 August 2011 в 08:06
поделиться