Не совсем понятно, о чем вы спрашиваете, но я все равно попробую.
Предположим, у вас есть две DLL, old.dll и new.dll, каждая из которых имеет пространство имен N с типом C. Вы можете сделать это:
csc /r:NEW=new.dll /r:OLD=old.dll foo.cs
а затем в foo.cs вы можете сказать
extern alias NEW;
extern alias OLD;
class D : NEW::N.C { }
class E : OLD::N.C { }
и D наследует от N.C в new.dll, E наследует от N.C в old.dll.
Решает ли это вашу проблему?