How to reference a namespace from a specific assembly?

George Mauer picture George Mauer · Feb 5, 2009 · Viewed 17.7k times · Source

So here is my problem.

  • My (test) project references both Castle Windsor and Rhino Mocks.
  • I am creating a class which implements Castle.Core.Interceptor.IInterceptor from the Castle.Core.dll assembly
  • In building Rhino Mocks, Ayende used Castle.Core.Interceptor and includes the whole darn namespace inside the Rhino.Mocks.dll

So when I try to build, I get the error

The type 'Castle.Core.Interceptor.IInterceptor' exists in both 'c:...\Libraries\Rhino.Mocks.dll' and 'c:...\Libraries\Castle.Core.dll'

How then do I specify that I want to use the IInterceptor instance from the Castle.Core.dll rather than the one included in Rhino Mocks?

Answer

George Mauer picture George Mauer · Feb 5, 2009

Let's throw the specific answer up here in case someone comes along later. From article here.

  • Select one of the two assemblies under project references (in my case I selected Castle.Core). Hit F4 to bring up properties and enter alias CastleCore
  • At the top of the problematic cs file put extern alias CastleCore;
  • Reference your class with CastleCore::Castle.Core.Interceptors.IInterceptor. Or in my case I simply did:

using cci = CastleCore::Castle.Core.Interceptors;

and can now reference

cci.IInterceptor