2

クラスライブラリを構築していますが、app.config/webconfigにいくつかの設定があることを確認するための最良の方法は何でしょうか。

クラスライブラリには、接続文字列とアプリキーが必要です。

nugetを使用すると、構成ファイルに設定を挿入できますが、nugetを使用していないので、誰かがアイデアを持っているかどうか疑問に思っています。または、catchを試して、それらの設定が構成ファイルにあるかどうかを確認する必要がありますか?

4

3 に答える 3

1

さまざまな種類のソリューションから選択できます。

  1. 必要な情報を提供することは、ユーザーの責任であると言えます。そのため、ユーザーがオブジェクトのインスタンスを作成するときに、必要な情報が提供されることを確認してください。これは、クラス ライブラリのかなり良いオプションです。誰があなたのコードを使用するのか、その設定をどのように管理するのかを教えたくありません。彼が構成を保存する独自の方法を持っているとしましょう-なぜ特定の構成タイプ(System.Configuration)に縛られる必要があるのですか。

  2. app.config/web.config の使用を主張する場合は、アプリケーションのメインのものを使用せずに、アセンブリ用に 1 つだけ持つことができます。使用できますConfigurationManager.OpenExeConfiguration。アセンブリがどこから実行されているかを知るには、を使用しますAssembly.GetExecutingAssembly().Location。このようにして、独自の構成ファイルを開き、ユーザーが設定を更新する必要があることをドキュメントで確認するだけです。

  3. app.config/web.config で構成情報を指定し、探しているキーが存在しない場合は例外をスローする必要があることを彼に伝えることができます...

于 2012-09-26T18:41:25.197 に答える
0

これを試して

http://ninjectconfigurer.codeplex.com/

質問を明確に読んだ後、上記のリンクは機能しませんが、次の解決策は機能する可能性があります

無効または誤った設定は、実際にはコンパイル時の問題です。msbuild スクリプトを使用して、app.config ファイルに必須の設定があるかどうかを検証できます。そうでない場合は、コンパイル中にエラーが発生するはずです。

構成ファイルの内容を読み取るには、Xmlread msbuild タスク - Read Config Value in MSBuild タスクを使用します。

不足している設定で失敗するには、以下に示すように Xmlread タスクのエラー条件を使用し (別のタスクの場合)、このタスクをプロジェクト ファイルに添付します。

コンテンツ ファイルが見つからない場合に MSBuild を失敗させる方法

于 2012-09-26T18:34:24.010 に答える
0
        //test settings...
        var a = System.Configuration.ConfigurationManager.AppSettings["myAppKey"];
        if (a == null)
        {
            Console.WriteLine("Application key does not exists!");
        }
        var b = System.Configuration.ConfigurationManager.ConnectionStrings["myConName"];
        if (b == null)
        {
            Console.WriteLine("Connection does not exists!");
        }
于 2012-09-26T18:36:40.277 に答える