必须使用完全限定的类名

时间:2014-07-31 13:45:20

标签: c# .net using using-statement using-directives

出于某种原因,在添加对MySql.Data的引用并添加using MySql.Data;之后,我无法输入new MySqlConnection() - 而是我必须输入new MySql.Data.MySqlClient.MySqlConnection();

我可以通过将其添加到我的班级顶部来解决这个问题:

using MySqlClient = MySql.Data.MySqlClient;
using MySqlConnection = MySql.Data.MySqlClient.MySqlConnection;
using MySqlException = MySql.Data.MySqlClient.MySqlException;

但是如何在MySqlClient中访问所有类而不必为它们添加别名?我以前没见过这种行为。

2 个答案:

答案 0 :(得分:3)

添加

using MySql.Data.MySqlClient;

现在可行:

using(var con = new MySqlConnection("..."))
{
    // ...
}

你不能使用"子命名空间"在使用new初始化对象期间。所以这是不允许的:

using MySql.Data;

// ...
using(var con = new MySqlClient.MySqlConnection("..."))
{
    // ...
}

因为MySqlClient被认为是一个类而不是命名空间的一部分。这就是为什么它无法解决而且需要完全合格的原因:

using(var con = new MySql.Data.MySqlClient.MySqlConnection("..."))
{
    // ...
}

答案 1 :(得分:1)

您需要整个命名空间。

using MySql.Data.MySqlClient;