問題タブ [appsettings]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - バイナリ シリアル化とアプリ設定 (user.config)
C# (.Net 2.0) を使用して Windows アプリケーションを開発しています。50 から 60 近くのユーザー設定を保存する必要があります。どなたか、次のうちどちらが優れているか教えていただけますか?
バイナリ シリアル化またはアプリケーション設定 (user.config)
ありがとうございました。
c# - データベースを使用してアプリケーション設定を保持する
私は、web.config(またはこの場合はappsettingsノードを含むapplication.configファイル)を変更せずに、アプリケーションをより拡張可能で操作しやすくする方法を検討しています。
私が考えた1つの方法は、sqlcachedependancyを持つデータベーステーブルにアプリの設定を保持することです。この意味は:
- データベースで設定が変更されるたびに、キャッシュが無効になり、設定が再度取得されるため、ファイルを変更したりアプリ全体を再起動したりすることなく、アプリケーションをリアルタイムで更新できます。
- 設定を変更できるカスタムツールを作成できます。
私が見ている短所は、これが深刻なロジックの問題を引き起こす可能性があることです。プロセスの開始時にappsettingをチェックするものがあり、それが途中で変更されると、意図せずにプロセスフローを変更してしまう可能性があります。アプリケーションを完全に再起動する必要はありません。
これを回避する方法はありますか?
アプリ設定を管理して、1つ、複数、またはすべてのサーバーを一度にリモートで変更できるようにするためのより良い方法はありますか?
asp.net - Linqを使用してweb.configAppSettingsを反復/フィルタリングできますか?
Linqを使用して、web.configファイルからいくつかのアプリ設定を除外する方法を理解しようとしています。
私は次のようなことをしようとしています(構文が間違っています):-
私は何を間違えましたか?
編集:screenieを追加しました(ここにリンクがあります)
.net - configSourceを使用し、コアセクションのrestartOnExternalChangesを変更する
Web構成セクションのconfigSource属性を使用して、さまざまな設定の外部ファイルを定義したいと思います。
特に、appSettingsセクション。これは、私の設定ファイルに次のエントリがあることを意味します。
ただし、このファイルが更新された場合、設定は自動的に取得されません。これは、設定がweb.configに手動で含まれている場合の場合です。
さらに調査すると、restartOnExternalChanges属性が見つかりました。<section/>
これは、configSourceによって識別された外部ファイルが再起動をトリガーできるかどうかを定義する要素で明らかに使用できます。素晴らしい!かと思いました。
ただし、appSettingsセクションを定義しようとして、restartOnExternalChanges値を変更すると、appSettingsセクションがmachine.configで定義されているため(変更できないファイル)、ここで同じエラーが発生します。
すでに上位レベルで定義されているセクションについて、これら2つの設定を連携させることが可能かどうか誰かが知っていますか?
c# - AppSettings ショートカットの質問
asp.net ユーザー コントロールで <%$ AppSettings: .. %> ショートカットを使用しようとしています。
プロパティをアプリ設定にバインドするときに構文をうまく使用できますが、ページ ID を保持するためにアプリ設定を使用したいと考えています。例:
この方法は機能しないので、私の質問は、 appsetting ショートカットをこのように使用してリテラルを挿入できるか、またはこれを達成する方法を誰かが提案できるかということです。
どうもありがとう、
アダム
c# - アプリケーションの起動時に追加された appsettings を取得する際の問題
Application_Start() の global.asax で、データベースに送信され、名前/値テーブルからすべてのアプリ設定を取得し、それらを経由でお申し込みApplication.Add(name,value)
ください。
別のプロジェクトに「アプリケーション ファサード」があり、サービス レイヤー、データ レイヤーなどで使用され、さまざまなビットとピースを実行する必要がある設定を取得します。
私のデータベースには、いくつかのエントリがあります。
したがって、私の方法では、データベースからこれらの値を取得して、アプリケーションに入れます。
これは、後でアプリケーションから値を呼び出す方法です。
これは物事が奇妙になるところです。
これを使用して Web レイヤーからアプリケーション ファサードを呼び出すと、次のようになります。
何も返されません (はい、get メソッドで ConfigurationManager だけを試しました!)。
しかし、これは奇妙なことです...
アプリケーション キーを web.config ファイルに手動で入力すると...
次に、Putz と同様のプロパティを ApplicationFacade クラスに組み込みます。ビュー ( <%= ApplicationFacade.Putz %>
) で呼び出しを行うと、' mash
' が返されます。
したがって、ApplicationFacade が正しく機能していることはわかっています。おそらくそれはapplication_start()の私のコードですか?
さて、これを私の見解に入れると<%=Application["WebServiceUsername"]%>
、myUsername
が返されます。
何が得られる?!
答え
c# - 厳密に型指定された AppSettings クラスを自動生成する
最初の質問は次のとおりです。
これは可能ですか?Joe Wrobel の作品(忘れられたCodeplex プロジェクトのリダックス)からインスピレーションを得ています。ここでは、プロバイダーのプロファイルを作成する作業を行います。これにより、プロバイダーの厳密な型指定を作成する作業が行われ、Profile クラスのファサードが効果的に作成されます。
そしていよいよ裏話!
私は魔法の糸が本当に好きではありません。それらは非常に悪いものであり、アプリケーションの更新に関して深刻な問題を引き起こす可能性があります。PHP や ColdFusion などの言語で働いてきた経験から、それらをアプリケーションに組み込むと、変更が必要になるまで忘れてしまいがちであることを私は知っています。そして、それらのすべてのバリエーションを探し出し、それに応じて変更する必要があります。
.NET は、「すぐに使える」アプリケーション テンプレートに従っている場合、それほど優れているとは言えません。多くの例では、web.config の appsettings を使用してさまざまな設定を保存しています。これは実際に保存するのに最適な場所であり、ほとんどのアプリケーションに最適です。ただし、これらを直接呼び出し始めると、問題が発生し始めます。たとえば、ConfigurationManager.AppSettings["MyAppSetting"]
. その後、魔法の文字列を使用するようになるため、PHP ユーザーよりもはるかに優れているとは言えません。
ここでファサードの出番です。ファサードは、マジック ストリングから厳密に型指定されたオブジェクトを 1 か所で作成し、開発者がそれをアプリケーションの残りの部分から参照できるようにする方法を提供します。
今では、web.config を使用して appsettings を含める代わりに、データベースを使用してそれらすべてを保持しています。アプリケーションの開始時に、名前と値の組み合わせが取得され、順番にConfigurationManager.AppSettings
viaに追加されSet
ます。大したことはありません(私が以前に抱えていた問題は別として!)。
この「アプリケーション ファサード」は、データ レイヤー、サービス レイヤー、およびプレゼンテーション レイヤーからアクセスでき、アプリケーション モードなどを保持します。どのサービス エンドポイントが yada yada yada を使用するか、多くのマジック ストリングを探す必要性を 2 つのマジックに制限します文字列 - 1 つ (名前) はファサードにあり、もう 1 つ (名前と値) は作成時点 (私にとってはデータベース) にあります。
このファサード クラスは最終的にかなり大きくなり、最終的には両方を更新しなければならないことにうんざりするでしょう。
だから私がやりたいのは、ビルドが完了するたびに自動生成される ApplicationFacade クラスを持つことです。そして今、最初に戻ります...これは可能ですか?
c# - AppSettings をクラスにカプセル化しますか?
私は次のようなコードを持っています:
「mySetting」のような文字列キーを使用する必要がないように、各設定をカプセル化するプロパティを作成する方法はありますか? 「カスタム構成セクション」を作成することでそれができることは知っていますが、別のセクションを作成したくありません... 既存の <appSettings> セクションを使用したいです。
c# - ConfigurationManager.AppSetting["settingname"].ToString() から逐語的な文字列を返す方法
メソッドを使用して、ConfigurationManager.AppSetting["blah"].ToString()
必要なファイルを含むフォルダーへのパスを取得しています。UnsupportedFormatException
しかし、 を使用しようとするとパスに を投げていますDirectory.GetFiles(path)
。
戻り値にはエスケープ文字が含まれており、余分な文字を返さないようにする方法がわかりません。返された後のパスは次のようになります。
\\\\\\\\C:\\\\folder1\\\\folder2
fitnesse - ConfigurationSettings.AppSettingsが空で、null例外をスローします
私はこのようなクラスを持っています:
私がこのようにそれを使おうとすると:
「System.Reflection.TargetInvocationException:呼び出しのターゲットによって例外がスローされました。---> System.NullReferenceException:オブジェクト参照がオブジェクトのインスタンスに設定されていません。」というエラーが表示されます。AppSettingsのAllKeysプロパティは、長さが1であると予想される、長さがゼロの配列です。
プロジェクト内のapp.configファイルは次のようになります。
ConfigurationSettings.AppSettingsは廃止されることになっているので、ConfigurationManager.AppSettingsを使用する必要がありますが、それをコンパイルすることすらできません。プロジェクトには、System.configuration(私のマシンではc:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ System.configuration.dll)への参照があり、コードの先頭にステートメントを使用しています。
Fitnesseを使用してコードをテストしていますが、エラーが発生します。app.configファイルのコピーも、実行したテストフィクスチャプロジェクトのBin>Debugフォルダーに配置する必要があることを理解しています。だから、なぜ私はまだこのエラーが発生しているのかわかりません。
助けてください。