我使用名为BCrypt.net的库,作者使命名空间与Class同名,因此Class完整路径为:BCrypt.Net.BCrypt,其中BCrypt.Net是命名空间,BCrypt是班级名称。
我正在尝试在我的代码中使用,就像我可以找到的所有示例一样,例如:
BCrypt.HashPassword("234");
但Visual Studio抱怨说:
错误3类型或命名空间名称'HashPassword'不存在于 命名空间'BCrypt'(你错过了一个程序集 参考?)
我的项目中有程序集(因为我是从NuGet获得的):
如果我在命名空间之前添加using BCrypt.Net;
或using BCrypt;
,则错误说明相同。
我将它添加到我的命名空间中,有趣的事情发生了。我工作,代码编译和执行。但Visual Studio显示错误!我无法理解它是如何编译错误的。
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");
,但我想避免使用它。
答案 0 :(得分:1)
我认为您可以解决此问题,为命名空间添加别名。像这样:
using BCr = BCrypt.Net;
namespace Program {
public class MyClass {
public void MyMethod() {
var s = BCr.BCrypt.HashPassword("234");
}
}
}
答案 1 :(得分:0)