项目之间的接口和类

时间:2013-11-07 07:32:03

标签: c# interface

我的应用程序结构如下:

解决方案:MySolution

MySolution中的项目:主机,业务,服务器。

项目之间的引用如下所示: 主机< - 业务 - >服务器 (业务引用主机和服务器,但主机不引用服务器,反之亦然,因为这会导致循环 - )

所以,我在服务器中有一些数据库内容。

  • 我有一个属性:DBConenctionString - 应该包含连接字符串。

  • 我想要做的是从Host设置此属性。

  • 我还在Server项目中保留了与数据库有关的所有方法。

记住接口 - 这样我以后也可以创建一个在线应用程序(web)。

我有一些代码及其工作,但我不知道这是正确的方法。 如果有人可以向我展示一些东西或指出我正确的方向?

CODE: 我在Library中有这个接口(其他两个项目之间的连接):

    public interface IDBUtils
    {
        string DBConnectionString { get; set; }

        bool OpenConnection();

        bool CloseConnection();

        bool ExecuteSQL(string sql);

        bool CreateDatabase(string servername, string databaseName, string databaseDataPath);

        bool CreateDatabaseUser(string servername, string username, string password);
    }

然后是Library中具有接口代码的类:

public string DBConnectionString
{
    get
    {
        return DBService.DB.DBUtils.DBConnectionString;
    }
    set
    {
        DBService.DB.DBUtils.DBConnectionString = value;
    }
}

public bool OpenConnection()
{
    return DBService.DB.DBUtils.OpenConnection();
}

public bool CloseConnection()
{
    return DBService.DB.DBUtils.CloseConnection();
}

public bool ExecuteSQL(string sql)
{
    return DBService.DB.DBUtils.ExecuteSQL(sql);
}

public bool CreateDatabase(string servername, string databaseName, string databaseDataPath)
{
    return DBService.DB.DBUtils.CreateDatabase(servername, databaseName, databaseDataPath);
}

public bool CreateDatabaseUser(string servername, string username, string password)
{
    return DBService.DB.DBUtils.CreateDatabaseUser(servername, username, password);
}

我只会在服务器上显示属性和一个方法,否则会变得太长。

在服务器上: 属性:

public static string DBConnectionString { get; set; }

OpenCOnnection()方法:

        public static bool OpenConnection()
        {
            bool success = false;
            try
            {
                if (DBConnectionString.Length > 0)
                {
                    conn = new SqlConnection(DBConnectionString);
                    conn.Open();
                    success = true;
                }
            }
            catch { /* Do nothing... */ }
            return success;
        }

=============================================== ==========================================

从Host on Server设置属性: 它使用Library:

上的界面
iDBUtils.DBConnectionString = connectionString.ToString();

从Host on Server执行方法:

iDBUtils.OpenConnection();

你可以看到,图书馆是“中间人”。

0 个答案:

没有答案