В общем, хочу что бы перед добавление записи в коллекцию у меня выполнялось некоторое действие.
Как я понимаю, мне нужно наследоваться от List<T> и перекрывать метод Add своим или есть еще какие-то варианты?
В конечном итоге, для пользователя должно казаться, что он работает с обычным List'ом.
Наследуйтесь от класса Collection<T>, в нем есть специальные protected virtual методы для этого, в частности InsertItem, например. Т.е. вы можете переопределить этот метод в своем наследнике и в нем выполнить необходимые операции, а затем вызвать базовую реализацию, которая фактически вставит элемент (или не вызывать, если в каких-то ситуациях вставка не нужна).
Примером наследования от Collection как раз является упомянутый класс ObservableCollection (здесь можно посмотреть как это реализовано в нем)
PS: Если вы читали Албахари, то должны так же знать о классе CollectionBase - необобщенной версии Collection<T>.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости