C# 使用自定义配置节访问企业库数据

C# 使用自定义配置节访问企业库数据,c#,.net,connection-string,enterprise-library,C#,.net,Connection String,Enterprise Library,如何在企业库数据访问中使用外部配置文件中的connectionString 我的app.config: <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="custom.configuration.server" type="Custom.Framework.Core.Configuration.Server.Custo

如何在企业库数据访问中使用外部配置文件中的connectionString

我的app.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="custom.configuration.server" type="Custom.Framework.Core.Configuration.Server.CustomConfigurationServerSection, Custom.Framework.Core"/>
  </configSections>
  <custom.configuration.server configSource="custom.configuration.server.config"/>
</configuration>
注:Windows 8.1、Visual Studio 2013、Net Framework 4.5、企业库6.0、C#


*我在“

中找到了一些帮助我的东西,这取决于您将外部配置文件放在何处。我需要把它放在一个可以修改它的环境中。以下是代码的一部分:

using System.Configuration;

public class ConfigHelper
{
    private const string ConfigPathString = @"{0}\MyApp\App.config";

    private string ConfigPath
    {
        get { return String.Format( ConfigPathString, System.Environment.GetFolderPath( Environment.SpecialFolder.LocalApplicationData ) ); }
    }

    private Configuration Config
    {
        get
        {
            ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();
            fileMap.ExeConfigFilename = ConfigPath;

            return ConfigurationManager.OpenMappedExeConfiguration( fileMap, ConfigurationUserLevel.None );
        }
    }

    public string ReadConString()
    {
        Configuration cfg = Config;
        return cfg.ConnectionStrings.ConnectionStrings[DefaultConnectionStringKey].ConnectionString;
    }
}

我提到了外部,但实际上它是同一个项目的一部分。困难在于使用“DatabaseFactory.CreateDatabase(connectionStringName)”企业库,因为它无法识别作为有效connectionString传递的名称。connectionString是我通过string属性使用的自定义类配置,谢谢!所以我误解了你的问题。但您可以使用指定的名称为每个企业和/或产品创建一个“普通”app.config,如“ent1.config”,并使用上面的代码。否则我不知道。我需要这些统一的设置来适应我的项目,无论如何谢谢你的帮助,我会继续搜索!
public void TestMethod1()
        {
            using (var customDatabase = new CustomDatabase("development"))
            {

            }
        }
using System.Configuration;

public class ConfigHelper
{
    private const string ConfigPathString = @"{0}\MyApp\App.config";

    private string ConfigPath
    {
        get { return String.Format( ConfigPathString, System.Environment.GetFolderPath( Environment.SpecialFolder.LocalApplicationData ) ); }
    }

    private Configuration Config
    {
        get
        {
            ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();
            fileMap.ExeConfigFilename = ConfigPath;

            return ConfigurationManager.OpenMappedExeConfiguration( fileMap, ConfigurationUserLevel.None );
        }
    }

    public string ReadConString()
    {
        Configuration cfg = Config;
        return cfg.ConnectionStrings.ConnectionStrings[DefaultConnectionStringKey].ConnectionString;
    }
}