ここで最初の質問です:自動生成する、厳密に型指定されたのAppSettingsクラス
が可能これですか?私はJoe Wrobel's work(忘れたCodeplex projectの還元)から私のインスピレーションを受けています。ここでは、プロバイダー用のプロファイルを作成する作業を行い、強力な型定義を作成して、Profileクラスのファサードを効果的に作成します。
今やバックストーリー!
私は本当に好きではないmagic strings。彼らはかなり悪いですし、あなたのアプリケーションを更新することにいくつかの重大な問題を引き起こす可能性があります。 PHPやColdFusionのような言語で作業していたので、あなたのアプリケーションに入れて、変更するまで忘れてしまうのは簡単です。そして、あなたはそれぞれの変化を狩り、それに応じて変えなければなりません。
実際には、アプリケーションテンプレート「out of the box」に従えば、.NETの方がはるかに優れていません。そこの多くの例では、web.config内のappsettingsを使用してさまざまな設定を保存しています。これは実際に保存するのに適した場所で、ほとんどのアプリケーションに最適です。しかし、直接呼び出すときに問題が発生し始めます。たとえばConfigurationManager.AppSettings["MyAppSetting"]
です。それでは、あなたは魔法の文字列を使っているので、PHPユーザーよりはるかに良くなっています。
ここにはfacadesが入ります。ファサードは、マジックストリングから1つの場所に強く型付けされたオブジェクトを作成し、アプリケーションの残りの部分から参照するように開発者を呼び出す方法を提供します。
今、私のappsettingsを格納するためにweb.configを使用する代わりに、それらをすべて保持するためにデータベースを使用します。アプリケーションの開始時に、名前/値のコンボが取得され、にSet
を介して順番に追加されます。いいえ、私は以前持っていたproblemから離れています。
この「アプリケーションファサード」は、データレイヤー、サービスレイヤー、プレゼンテーションレイヤーからアクセス可能で、アプリケーションモードのようなものを保持しています。サービスエンドポイントは、yada yada yadaを使用し、多くのマジックストリング、 2つの魔法の弦に至るまで - ファサードの名前(名前)と創造のポイントの名前と値(これは私にとってはデータベース)です。
このファサードクラスは最終的にかなり大きくなり、最終的には両方を更新することに疲れてしまいます。
私がしたいのは、ビルドが完了するたびに自動的に生成されるApplicationFacadeクラスです。そして今、始めに戻って...これは可能ですか?
これは興味深い考えですが、正直言ってCodeSmithの大ファンではありません。最終的には、自分のアプリケーションのタイプを推論するアプリケーションがないため、どのような場合でも必要なクラスを作成しました。 –
私のポストに少しのコードを追加しました。それがあなたを助けることができると願っています – Cheburek
それは本当に面白い解決策です!それが問題を抱えていると思われるもの(これはVBのIsNumericです)は、VBが数値であると考える「0,5,0」ですが、どういうことかわかりません。 –