このように実行時に接続文字列を変更できます。MySettings クラス内の別のプロパティとして、接続文字列の設定を書き込み可能にします。
Partial Friend NotInheritable Class MySettings
Public WriteOnly Property RunTimeConnectionString()
Set(ByVal value)
My.Settings("MyConnectionString") = value
End Set
End Property
End Class
次に、アプリケーションが初期化されるとき (型指定されたデータセットのテーブル アダプターを使用する前) に、次のように記述します。
My.Settings.RunTimeConnectionString = My.Settings.ProductionConnectionString
ここで、ProductionConnectionString は単純な文字列設定です。これはユーザー スコープ設定であるため、すべてのユーザーが (上記のコードのように値を割り当てることによって) 変更し、My.Settings.Save() を呼び出して保存できます。
このコードは、最初にメイン プロジェクトで作成され、その設定 (= app.config ファイル) に格納された接続文字列に対して適切に機能します。
app.config 内の接続文字列は、実際には MyApp.MySettings.MyConnectionString という長い名前になっています。
クラス ライブラリ プロジェクトの app.config に接続文字列を格納し、メイン プロジェクトでそのプロジェクトを参照すると、app.config ファイルが何らかの形でマージされるため、クラス ライブラリにはその設定が含まれます。
方法がわからないのは、実行時にクラス ライブラリから設定を変更することです。接続文字列の設定をクラス ライブラリからメイン プロジェクトの app.config にコピーできます。MyClassLibrary.My.MySettings.MyConnectionString のような同じ名前を保持する必要があります。
上で示したのと同じ原則を、この 2 番目の接続文字列に何らかの方法で適用できますか?