В твоём случае - только через рефлексию брать GetType у приходящего параметра, а потом искать в списке такой класс, у которого женерик параметр имеет совместимый тип. (тоже через GetType, GetImplementingInterfaces, и GetGenericParameter).
Список соответственно придётся делать в виде List.
Чтобы каждый раз такой поиск не проводить - можно сделать Dictionary, где ключ - тип параметра, а значение - подходящий процессор.
Ещё можешь попробовать паттерн "
цепочка ответственности" - тогда процессор должен принимать какой-нибудь абстрактный object и иметь метод CanApply, в котором делать проверку, соответствует ли реальный тип.
Ещё можешь посмотреть на то, как например сделан