【问题标题】:How to reference a namespace from a specific assembly?如何从特定程序集中引用命名空间?
【发布时间】:2009-02-05 17:59:24
【问题描述】:

所以这是我的问题。

  • 我的(测试)项目同时引用了 Castle Windsor 和 Rhino Mocks。
  • 我正在创建一个从 Castle.Core.dll 程序集中实现 Castle.Core.Interceptor.IInterceptor 的类
  • 在构建 Rhino Mocks 时,Ayende 使用了 Castle.Core.Interceptor 并将整个该死的命名空间包含在 Rhino.Mocks.dll 中

所以当我尝试构建时,我得到了错误

类型 'Castle.Core.Interceptor.IInterceptor' 存在于两者中 'c:...\Libraries\Rhino.Mocks.dll' 和 'c:...\Libraries\Castle.Core.dll'

那么我如何指定我想使用 Castle.Core.dll 中的 IInterceptor 实例而不是 Rhino Mocks 中包含的实例?

【问题讨论】:

    标签: c# .net assemblies


    【解决方案1】:

    让我们把具体的答案放在这里,以防以后有人出现。 来自文章here

    • 选择项目引用下的两个程序集之一(在我的例子中,我选择了 Castle.Core)。按 F4 调出属性并输入别名 CastleCore
    • 在有问题的cs文件的顶部放extern alias CastleCore;
    • 使用CastleCore::Castle.Core.Interceptors.IInterceptor 引用您的课程。或者就我而言,我只是这样做了:

    使用 cci = CastleCore::Castle.Core.Interceptors;

    现在可以参考

    cci.IInterceptor
    

    【讨论】:

    【解决方案2】:

    您可以使用extern alias 为其中一个程序集设置别名以防止出现歧义。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-14
      • 2011-07-09
      • 1970-01-01
      • 2010-10-14
      • 1970-01-01
      • 2010-10-13
      • 1970-01-01
      相关资源
      最近更新 更多