どのように私は別の.configファイルを使用するように亜音速の2を伝えることができますか?
-
21-09-2019 - |
質問
私は、プロジェクト内から亜音速の2を使用していると私はデフォルトのApp.configファイルとは別の.configファイルを指定したいと思います。どのように私は、特定の設定ファイルを使用して亜音速伝えることができますか?
解決 2
DataService.ConfigSection
とDataProvider.DefaultConnectionString
:あなたが亜音速のオブジェクトの2つのプロパティを設定することで、これを行うことができるように思われます。これらを設定すると亜音速のはそれだけであなたがそれを与えたの詳細を使用します、デフォルトのアプリケーション構成ファイルを探すためにしようとしません。
例
// Part 1: set the config section:
string configPath = Assembly.GetExecutingAssembly().Location + ".config";
ExeConfigurationFileMap execfg = new ExeConfigurationFileMap();
execfg.ExeConfigFilename = configPath;
Configuration configuration = ConfigurationManager.OpenMappedExeConfiguration(execfg, ConfigurationUserLevel.None);
DataService.ConfigSection = (SubSonicSection)configuration.GetSection(ConfigurationSectionName.SUB_SONIC_SERVICE);
// Part 2: set the connection string
string connectionString = configuration.ConnectionStrings.ConnectionStrings["xLocal"].ConnectionString;
DataProvider provider = DataService.Provider;
provider.DefaultConnectionString = connectionString;
これは、しかし、私は時々、最後の行のDataProvider provider = DataService.Provider;
への第二の長い遅延を経験しています、うまく動作しているように見えます。私は、これは私がここでやっているか、それが一般的な組立ローディングの問題何をどうすることですかはわかりません。私はここで別の質問でこの問題を文書化してきました:は、システムへのコール(亜音速から)年齢や年齢を取っ.Web.Configuration.ProvidersHelper.InstantiateProvidersする
他のヒント
あなたがすることはできません - 実行環境用に設定されているプロバイダの設定から亜音速の作品。あなたが望んでいた場合は、connectionStrings.configを使用し、他のどこかに置くが、亜音速は、アプリの設定を開くと、それはグッズを見つけることだのConfigurationManagerを使用できます。
所属していません StackOverflow