首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >冲突命名空间解析

冲突命名空间解析
EN

Stack Overflow用户
提问于 2015-08-05 23:58:49
回答 2查看 1.7K关注 0票数 1

我使用一个名为BCrypt.net的库,作者使名称空间与类的名称相同,所以类完整路径是: BCrypt.Net.BCrypt,其中BCrypt.Net是名称空间,BCrypt是类名。

我试图在代码中使用,就像我可以找到的所有示例一样,例如:

代码语言:javascript
复制
BCrypt.HashPassword("234");

但是Visual抱怨说:

错误3命名空间'HashPassword‘中不存在类型或名称空间名称'BCrypt’(您是否缺少程序集引用?)

我的项目中有程序集(因为我是从NuGet获得的):

如果我添加了一个using BCrypt.Net;using BCrypt;,在我的命名空间之前,错误也是一样的。我把它添加到我的命名空间中,会发生一些有趣的事情。我工作,代码编译和执行。但是显示了一个错误!我不明白它是如何用错误进行编译的。

代码语言:javascript
复制
namespace Test.Data
{
    using BCrypt.Net; // The 'Net' is marked with a Red Error line in VS2013
    ....
    string s = BCrypt.HashPassword("234");

错误3类型名称'Net‘在类型>'BCrypt.Net.BCrypt’中不存在

对于using BCrypt = BCrypt.Net.BCrypt;,错误(但编译和执行良好)是相同的。

那怎么回事?

编辑:

我知道我可以使用它作为BCrypt.Net.BCrypt.HashPassword("234");,但我想避免它。

EN

回答 2

Stack Overflow用户

发布于 2015-08-06 00:08:44

我认为您可以解决这个问题,在名称空间中添加别名。就像这样:

代码语言:javascript
复制
using BCr = BCrypt.Net;

namespace Program {

   public class MyClass {

     public void MyMethod() {
        var s = BCr.BCrypt.HashPassword("234");
     }
  }
}
票数 2
EN

Stack Overflow用户

发布于 2015-08-06 00:10:14

添加

代码语言:javascript
复制
using BCrypt = BCrypt.Net.BCrypt;

给你的用法:

代码语言:javascript
复制
namespace YourNamespace
{
    using BCrypt = BCrypt.Net.BCrypt;

    class Program
    {
        static void Main(string[] args)
        {
            BCrypt.HashPassword("234");
        }
    }

打样屏:

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31844709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档