特にチェーンのUI /エンドユーザーエンドでの構成ファイルの影響を考慮すると、.Net v2のdll、ASP.net Webサイトなどの.Net構成のさまざまな構成オプションに本当に混乱しています。
したがって、たとえば、私が使用するアプリケーションの一部は、アクセスする設定を使用します。
string blah = AppLib.Properties.Settings.Default.TemplatePath;
このオプションはクールに思えます。なぜなら、メンバーの型指定が厳密であり、Visual Studio 2005 IDE に存在しないプロパティ名を入力できないからです。コマンドライン実行可能プロジェクトの App.Config では、次のような行になります。
<connectionStrings>
<add name="AppConnectionString" connectionString="XXXX" />
<add name="AppLib.Properties.Settings.AppConnectionString" connectionString="XXXX" />
</connectionStrings>
(2 番目の設定がない場合、誰かがデバッグ dll をライブ ボックスにリリースして、デバッグ接続文字列が埋め込まれた状態でビルドされた可能性があります。)
次のように設定にアクセスすることもできます。
string blah = System.Configuration.ConfigurationManager.AppSettings["TemplatePath_PDF"];
dll コードまたは exe / aspx コードから設定にアクセスできるため、これらはクールに見えます。Web または App.config で必要なのは次のとおりです。
<appSettings>
<add key="TemplatePath_PDF" value="xxx"/>
</appSettings>
ただし、もちろん、値が設定ファイルに設定されていないか、文字列名が間違って入力されている可能性があるため、別の問題が発生しています。
だから...私の理解が正しければ、前者の方法は強力な型付けを提供しますが、dllと他のプロジェクトの間で値を共有することはできません。後者はより良い共有を提供しますが、タイピングは弱くなります。
何かが足りない気がします。現時点では、アプリケーションが値を構成ファイルに書き戻したり、暗号化したり、そのようなことをできるかどうかについても気にしていません。また、接続以外の文字列を格納する最善の方法はDBにあると判断しました...そして、DB接続の問題が発生した場合に備えて、電話番号をテキストの人々に格納する必要があります。 DBの外部に保存する必要があります!