Здравствуйте, Serginio1, Вы писали: S> Если ты реализуешь IEnumerable<string> и IEnumerable<int> то и определяешь IEnumerable. S>И IEnumerable должен так же работать как и для конкретного типа. Иначе это некорректная реализация.
Если ты реализуешь абстрактный proxy для произвольного кода, то он должен позволять вызывать произвольные интерфейсы.
А не только генериковые интерфейсы, у которых есть не-генерик аналог.
Ну, вот с IEnumerable<T> вам "повезло". А что вы будете делать с интерфейсами, у которых нет вот этого вот дуализма?
Если у вас нет решения — то ваше решение непригодно в продакшн.
Если есть — то ваше решение прекрасно заработает и в гипотетическом дотнете, у которого нету не-генерик IEnumerable вовсе.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.