Как вы управляете этим простым сценарием, когда у вас есть объект со списком предметов. EG:
public class ContainerObject
{
IList<ChildObject> Children { get; }
public void AddCustom(ChildObject toAdd)
{
// Some validation ...
Children.Add(toAdd);
}
}
Предполагая, что коллекция инициализирована реализацией IList, есть ли способ контролировать способ добавления элементов в список?
Например, у меня есть другой метод в классе ContainerObject, который берет ChildObject и добавляет его в список. Этот метод необходим для выполнения некоторой базовой проверки ChildObject перед его добавлением.
Я ленив в том, что я не хочу возиться и писать собственный интерфейс списка (без метода добавления), который должны реализовать разработчики-потребители. Я также использую метод ToList () в интерфейсе IQueryable, так что это еще одна причина придерживаться IList - он просто работает.
Итак, существует ли подход, при котором вы можете контролировать, как элементы добавляются в экземпляр IList, то есть предотвращать использование метода Add и разрешать добавление в коллекцию только через мой пользовательский метод, или я просто спрашиваю о невозможном? ... и ленивый: (* 1010 *
Я могу подумать о нескольких хакерских способах проверки, когда элементы добавляются с помощью моего пользовательского метода или непосредственно в списке, но они кажутся хакерскими!
Кто-нибудь испытывает что-либо подобное этому? Если так, что ты сделал?