在 C# 中调用 .dll 文件中的方法

Calling methods inside .dll File in c#

我用 c# 创建了一个 DLL 文件,内容如下:

namespace GenerateMemo
{
class GenerateMemo
{
    public MySqlConnection connection;
    private string server;
    private string port;
    private string database;
    private string uid;
    private string password;

    public void SqlConnect(string _server, string _port, string _database, string _uid, string _password)
    {
        string connectionString;

        connectionString = "SERVER=" + _server + ";" + " PORT=" + _port + ";" + "DATABASE=" +
        _database + ";" + "UID=" + _uid + ";" + "PASSWORD=" + _password + ";";

        connection = new MySqlConnection(connectionString);
        connection.Open();
    }

    public void sqlNonQueryN(string query)
    {
        MySqlCommand cmd = new MySqlCommand(query, connection);
        cmd.ExecuteNonQuery();
        connection.Close();
    }
}

而且我不知道如何在文件中调用这些方法。我正在使用 Visual Studio 并已将其作为参考导入。请告诉我如何使用我的 DLL 文件。我需要在另一个项目中使用这些方法。非常感谢。 :)

首先,您需要让您的 GenerateMemo class public 在另一个程序集中使用它。现在是 internal(class 的默认访问修饰符)。

然后,如果您已经将此 dll 添加为对项目的引用 - 基本上您需要创建 class 的实例并调用它的方法。

var memo = new GenerateMemo();
memo.SqlConnect(....)

等等。

并确保您已将 using GenerateMemo; 命名空间包含在您计划使用它的文件中。

更具可读性:

public class GenerateMemo
{
    private MySqlConnection connection;

    private string server, database, uid, password;
    private uint port;

    public GenerateMemo(string _server, uint _port, string _database, string _uid, string _password) //constructor
    {
        server = _server;
        port = _port;
        uid = _uid;
        password = _password;
    }

    private void BuildConnection()
    {
        MySqlConnectionStringBuilder builder = new MySqlConnectionStringBuilder();

        builder.Server = server;
        builder.Port = port;
        builder.Database = database;
        builder.UserID = uid;
        builder.Password = password;

        connection = new MySqlConnection(builder.ConnectionString);
    }

    public void sqlNonQueryN(string query)
    {
        if (connection == null)
        {
            BuildConnection();
        }
        connection.Open();
        MySqlCommand cmd = new MySqlCommand(query, connection);
        cmd.ExecuteNonQuery();
        connection.Close();
    }
}