2

VB .NET でクラス ライブラリを作成しました。ライブラリ内の一部のコードはデータベースに接続します。接続文字列を保持する構成ファイルを作成したいと考えています。

「Settings.settings」ファイルを作成し、そこに接続文字列を保存しました。

設定ファイルを持つクラス ライブラリがビルドされると、設定ファイルで定義されたキーと値のペアを持つ ".dll.config" ファイルが生成されます。

これの問題は、「.dll.config」ファイルの接続文字列を変更すると、ライブラリがこれらの変更を参照しないことです。クラス ライブラリを再コンパイルする必要があります。これにより、.dll.config ファイルの変更が上書きされます。

ライブラリを再コンパイルすることなく、その場で接続文字列を変更できる必要があります。

VB.NET クラス ライブラリ (.NET 2.0) にこれを可能にするメカニズムはありますか?

メソッドを使用する Web ページからクラス ライブラリに接続文字列を渡すことはできません。

以下にサンプルをリストしました。これは、文字列にアクセスする方法です。

    Public Function getsettings(ByVal Setting As String) As String
        設定 = "デモ" の場合
            My.Settings.Demo を返す
        そうしないと
            My.Settings.Live を返す
        終了条件
    終了機能
4

3 に答える 3

3

MyApp というライブラリを使用するアプリケーションがある場合、MyApp.exe.config で定義された接続文字列をライブラリで使用できます。一般的に言えば、クライアント プログラムは、ライブラリではなく構成環境を設定する必要があります。

If GetApplicationSetting("connectionString") Is Nothing Then
    Throw New Exception("Could not retrieve connection string from .config file")
Else
    Return ConfigurationManager.AppSettings.Item("connectionString")
End If

ConfigurationManager にアクセスするために System.Configuration フレームワークがロードされていることを確認してください。

編集 1: Web アプリケーションで使用している場合は、web.config で接続文字列を設定します。

編集 2: .exe.config または web.config の ConnectionStrings セクションに接続文字列を設定すると、次を使用してアクセスできます。

ConfigurationManager.ConnectionStrings("MyConnectionString")
于 2008-12-10T15:57:33.327 に答える
1

構成ファイルは、アプリケーションに固有です。したがって、DLL がアプリケーションによって使用される場合、app.config または web.config には、DLL 構成で使用しようとしているエントリが必要です。

残念ながら、「オプションではありません」がおそらく正しいオプションです。

于 2008-12-10T15:58:15.370 に答える
1

同じ要件を持つライブラリが複数あります。クラス ライブラリが、それを使用しているアプリケーションの web.config ファイルから接続文字列を直接取得するように設定します。あなたが言う時:

メソッドを使用する Web ページからクラス ライブラリに接続文字列を渡すことはできません。

理論的には、Web ページは con str をパラメーターとして渡していませんが、クラス ライブラリはそれを web.config ファイルから直接取得しているだけです。

于 2008-12-10T16:03:16.983 に答える