我使用一个名为BCrypt.net的库,作者使名称空间与类的名称相同,所以类完整路径是: BCrypt.Net.BCrypt,其中BCrypt.Net是名称空间,BCrypt是类名。
我试图在代码中使用,就像我可以找到的所有示例一样,例如:
BCrypt.HashPassword("234");但是Visual抱怨说:
错误3命名空间'HashPassword‘中不存在类型或名称空间名称'BCrypt’(您是否缺少程序集引用?)
我的项目中有程序集(因为我是从NuGet获得的):

如果我添加了一个using BCrypt.Net;或using BCrypt;,在我的命名空间之前,错误也是一样的。我把它添加到我的命名空间中,会发生一些有趣的事情。我工作,代码编译和执行。但是显示了一个错误!我不明白它是如何用错误进行编译的。
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");,但我想避免它。
发布于 2015-08-06 00:08:44
我认为您可以解决这个问题,在名称空间中添加别名。就像这样:
using BCr = BCrypt.Net;
namespace Program {
public class MyClass {
public void MyMethod() {
var s = BCr.BCrypt.HashPassword("234");
}
}
}发布于 2015-08-06 00:10:14
添加
using BCrypt = BCrypt.Net.BCrypt;给你的用法:
namespace YourNamespace
{
using BCrypt = BCrypt.Net.BCrypt;
class Program
{
static void Main(string[] args)
{
BCrypt.HashPassword("234");
}
}打样屏:

https://stackoverflow.com/questions/31844709
复制相似问题