Методы расширения нельзя переопределить, поскольку они не являются методами экземпляра, и они не являются виртуальными.
Компилятор будет жаловаться, если вы импортируете оба класса метода расширения через пространство имен, поскольку он не будет знать, какой метод вызывать:
Вызов неоднозначен между следующими методами или свойствами : ...
blockquote>Единственный способ этого - вызвать метод расширения с использованием стандартного синтаксиса статического метода. Поэтому вместо этого:
a.Foo();
вам нужно будет сделать это:
YourExtensionMethodClass.Foo(a);