наблюдаемая коллекция с несколькими наблюдателями с различным критерием фильтра - PullRequest
0 голосов
/ 24 июня 2018

Я хочу разработать наблюдаемую коллекцию, которая может иметь много наблюдателей, каждый из которых имеет собственный критерий фильтра на основе Linq.

Я понимаю, что мог бы легко создать отфильтрованную наблюдаемую коллекцию для каждого наблюдателя вручную. Но меня больше интересует элегантный подход к дизайну, чтобы отстранить его от наблюдателей.

критерий фильтра для каждого наблюдателя будет загружен из конфигурации, основанной на свойствах объекта. Затем наблюдатель должен подписаться на первичную коллекцию для изменений в объектах на основе заданного критерия фильтра.

Я хочу написать эту реализацию в общем виде, чтобы она могла работать для любого объекта и его коллекции.

Кроме того, я хочу использовать тот же фильтр для уведомления об изменениях в самих элементах коллекции. Таким образом, подписчик подписывается на изменения в элементах, а не на саму коллекцию. подписчик получает уведомление об изменении элемента только в том случае, если удовлетворен фильтр подписки.

Так, например: У меня есть коллекция объектов заказа в списке заказов. Подписчики подписываются на мой класс коллекции, основываясь на заданном критерии LINQ. Всякий раз, когда любой объект в коллекции обновляется, уведомляются только подписчики, которые удовлетворяют критерию фильтра.

...