How to reference a namespace from a specific assembly?

ぐ巨炮叔叔 提交于 2020-01-20 16:52:30

问题


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?


回答1:


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



回答2:


You can use an extern alias to alias one of the assemblies to prevent the ambiguity.



来源:https://stackoverflow.com/questions/517058/how-to-reference-a-namespace-from-a-specific-assembly

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!