app.config中的引用类属性?

时间:2015-12-08 17:26:40

标签: c# linq app-config dbml

我和我的同事正在使用LINQ(以及随后的DBML文件)处理连接到数据库的应用程序。我们每个人都有自己的连接字符串,以便在自己的数据库上工作,如下所示:

public class DbConfig
{    
   public static string conStr = @"My connection string";
   public static string conStr = @"His connection string";
}

每当我们每个人都参与项目时,我们只会注释掉其他连接字符串。 我的连接是,如果我可以引用DBML文件使用的conString文件中的两个app.config属性中的任何一个。谢谢。

2 个答案:

答案 0 :(得分:2)

您可以使用机器名称来执行此操作,使用以下代码:

public static class ConnectionString
{
    public static string Get
    {
        get
        {
            if(ConfigurationManager.ConnectionStrings.Count == 0)
                throw new Exception("No connection strings");

            var machineConnectionString = ConfigurationManager.ConnectionStrings["ConStringPrefix" + Environment.MachineName];
            var genericConnectionString = ConfigurationManager.ConnectionStrings["DefaultConString"];
            return  machineConnectionString ?? genericConnectionString;
        }
    }
}

然后在app.config中你会有:

<connectionStrings>
    <add name="ConStringPrefix@MyPCName" connectionString="Data Source=.\sqlexpress;Initial Catalog=DatabaseName;Integrated Security=true" providerName="System.Data.SqlClient" />
    <add name="ConStringPrefix@MyFriendPcName" connectionString="Data Source=.\sqlexpress;Initial Catalog=DatabaseName;Integrated Security=true" providerName="System.Data.SqlClient" />
    <add name="nhibernate.conexao" connectionString="Data Source=.\sqlexpress;Initial Catalog=DatabaseName;Integrated Security=true" providerName="System.Data.SqlClient" />
</connectionStrings>

答案 1 :(得分:0)

您可以创建个人构建配置(https://msdn.microsoft.com/en-us/library/kwybya3w.aspx)并在该配置中定义一些自定义标记,以便在您可以拥有的代码中

#if MyBuild
    public static string conStr = @"My connection string";
#endif

#if HisBuild
   public static string conStr = @"His connection string";
#endif

定义您的自定义

打开项目的属性页 - &gt;然后,在选择自定义配置后,构建然后修改“条件编译常量”属性。

这就是你如何定义自己的符号,然后根据你当前的构建设置(例如在每页的顶部写#define YourSymbol)#if #endif实际包含/排除代码

另一个解决方案可能只是为您的appsettings添加一个外部引用,并且该引用的文件不包含在您的源存储库中(这样您就不会共享它) 这样任何程序员都可以拥有自己的文件配置

只需在app.config / web.config中添加一行

<appSettings configSource="YourCustomConfiguration.config"/>

然后不要将它添加到teamfoundation或你使用的任何cvs

当然,YourCustomConfiguration.config是一个文件,你可以把它放在任何你想要的地方,只需指定一个相对路径

好吧,我已经说过了appsettings但你可以根据需要使用configSource,<connectionStrings configSource="YourCustomConnectionStrings.config">