私のアプリケーションの構造は次のようになります。
ソリューション: 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 は「仲介者」です。