簡體   English   中英

如何在Debug和Release模式下的WPF和DataSet中使用各種連接字符串?

[英]How to use various connection strings in WPF and DataSet in Debug and Release mode?

我有很多使用WPF和DataSet編寫的CRUD應用程序

我的連接字符串是:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
    </configSections>
    <connectionStrings>
        <add name="Depboard.Properties.Settings.DepartmentConnectionString"
            connectionString="ReleaseServer" providerName="System.Data.SqlClient" />
        <add name="Debug"
            connectionString="DebugServer" providerName="System.Data.SqlClient" />
    </connectionStrings>
</configuration>

這些應用程序具有許多行代碼:

private static string ConnStr = ConfigurationManager.ConnectionStrings["ReleaseServer"].
                                                                       ConnectionString;

此外,默認情況下, DataSet使用“ ReleaseServer”連接字符串。

當我在DebugRelease模式之間切換時,我真的很害怕更改連接字符串的所有代碼行。

有一個簡單的方法來更改連接字符串中DataSet和程序之間的DebugRelease模式,而無需修改代碼?

使用#if DEBUG怎么樣?

創建一個靜態類,將用於獲取服務器名稱:

public static class ServerName
{
    #if DEBUG

        const string SERVER = "DebugServer";

    #else

        const string SERVER = "ReleaseServer";

    #endif

    public static string Name => SERVER;
}

然后在初始化連接字符串時使用它:

private static string ConnStr = ConfigurationManager.ConnectionStrings[ServerName.Name].ConnectionString;

但是,我認為這是一個骯臟的解決方法。

應用程序實際上應該使用依賴項注入以及可能的依賴項容器,以及諸如存儲庫模式之類的模式,以將所有初始化代碼都放在一個位置(在適當的“接縫處”)。 如果正確使用DI,則只有一個地方需要連接字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM