0

私のアプリケーションの構造は次のようになります。

ソリューション: MySolution

MySolution のプロジェクト: ホスト、ビジネス、サーバー。

プロジェクト間の参照は次のようになります: Host <-- Business --> Server (Business は Host と Server を参照しますが、Host は Server を参照しません。逆も同様です。

SO、サーバーにいくつかのデータベースがあります。

  • そこにプロパティがあります: DBConenctionString - 接続文字列を含む必要があります。

  • 私がしたいのは、このプロパティを Host から設定することです。

  • また、データベースに関係するすべてのメソッドを Server プロジェクトに保持しています。

インターフェイスを念頭に置いてください-後の段階でオンラインアプリケーション(Web)を作成することもできます。

私はいくつかのコードとその動作を持っていますが、これが正しい方法であることを知りません。誰かが私に何かを見せたり、正しい方向に向けたりすることができたら?

コード: ライブラリにこのインターフェイスがあります (他の 2 つのプロジェクト間の接続):

    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);
    }

次に、インターフェイスのコードを持つライブラリ内のクラス:

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);
}

サーバー上のプロパティと 1 つのメソッドのみを表示します。そうしないと、長くなりすぎます。

サーバー上: プロパティ:

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;
        }

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

サーバーのホストからプロパティを設定するには: ライブラリのインターフェイスを使用します。

iDBUtils.DBConnectionString = connectionString.ToString();

Host on Server からメソッドを実行するには:

iDBUtils.OpenConnection();

ご覧のとおり、Library は「仲介者」です。

4

0 に答える 0