問題タブ [castle-dictionaryadapter]
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.
configuration - Castle DictionaryAdapter の文字列形式
インターフェイスとしてapp.configからアプリケーション設定を取得するために、Castle DictionaryAdapter を使用しています ( 「文字列を取り除く (3): アプリ設定を次のレベルに引き上げる」に基づく):
app.config
app.configに保存されている値を変換するために、「yyyyMMdd-HHmm」のようなカスタム文字列形式を使用するように DictionaryAdapter を構成することは可能ですか?
c# - Castle Core 2.5.2 の DictionaryAdapter だけを使用するにはどうすればよいですか?
Castle Core 1.2 を既に使用している古いアプリで、Castle Core 2.5.2 の DictionaryAdapter だけを使用したいと考えています。ソースから DictionaryAdapter だけをコンパイルする以外に、これらのライブラリの共通部分を区別する方法はありますか?
c# - ネストされた辞書を使用してアプリの設定を読み取るための Castle DictionaryAdapter または JSON
アプリケーション設定を次のような辞書として読み取る必要があります:App1: values1, App2: values2, App3: values3
には(string) や(dictionary < string, string >)などvalues
のプロパティがあります。Label
EnvVar
これまでのところ、2 つのオプションがあります。
DictionaryAdapter を使用してこれらの設定を読み取ることは可能ですか? ドキュメントや Google で手がかりが見つかりませんでした。これまでにできる最善の方法は、文字列のリストを取得してコード内の文字列を解析することですが、可能であれば避けたいと思います。
もう 1 つの方法は JSON デシリアライザーを使用することですが、Castle DictionaryAdapter のようにインターフェイスをデシリアライズできないようです。そのため、設定インターフェイスとそれを実装するクラスの両方を定義する必要があります。Castle DictionaryAdapter のようにインターフェイスを逆シリアル化できる JSON ライブラリはありますか?
c# - OnFlushDirty に渡された DictionaryAdapter を介して列挙する
変更の一般的な監査を実装するためにOnFlushDirty
、オブジェクトのメソッドを使用しようとしています:Castle.ActiveRecord
実行時に、 OnFlushDirty はおよびパラメータCastle.ActiveRecord.Framework.DictionaryAdapter
のそれぞれに対して渡されます。previousState
currentState
残念ながら、 をスローするメソッドDictionaryAdapter
はサポートされていません。GetEnumerator()
NotSupportedException
DictionaryAdapter
そもそも OnFlushDirty に a が渡されることを期待する必要がありますか?; とDictionaryAdapter
監査のために以前と現在の状態を比較するために、キーと値のペアを列挙するにはどうすればよいでしょうか?
c# - WebAPI では、CustomCreationConverter を使用してインターフェイス パラメーター バインディングの Castle DictionaryAdapter を返すにはどうすればよいですか?
Json.NET シリアライザーを使用して Microsoft WebAPI を使用しており、コントローラー パラメーター バインディングを使用して、Castle DictionaryAdapter を JSON からの逆シリアル化されたオブジェクトとしてインスタンス化しようとしています。(これにより、JSON で特定のプロパティが null に設定されているかどうか、または JSON にないためにデフォルトで null に設定されているかどうかを、組み込みの解析およびバインディング メカニズムを放棄することなく検出できます。)
しかし、新しいオブジェクトが作成されてからコントローラーに渡されるまでの間に消えるため、機能していません。
コントローラーは、インターフェイス パラメーターを使用して宣言されます。
デシリアライザーで IMessageModel を実装する Castle DictionaryAdapter をインスタンス化する必要があります。
これを行うために、DictionaryAdapterFactory で構築され、Create() メソッドをオーバーライドして動的な Castle オブジェクトを返す CustomCreationConverter のサブクラスを作成しました。
次に、次のようなフォーマッタを HttpConfiguration オブジェクトに追加します。
デバッガーを使用して、MessageModelConverter が使用されていること、Create() が呼び出され、IMessageModel を実装するモデルのキャッスル プロキシを作成して返すことを確認できます。ただし、コントローラーが呼び出されると、モデル パラメーターは null になります。どういうわけか、インスタンス化されたクラスは、コンバーターでの作成とコントローラーでの使用の間に消えています。
しかし、IMessageModel を実装する具象クラスを使用するように Create を変更すると、すべてが正常に機能し、コントローラーにモデルが表示されます。
または、次のように、IMessageModel を実装し、すべての呼び出しを別のインターフェイス オブジェクトに委譲するラッパーを宣言することもできます。
次に、次のように Create() を実装します。
これにより、Castle DictionaryAdapter に密輸することができ、問題なく動作します。モデル ラッパーがコントローラーに到着し、ディクショナリ アダプター プロキシを抽出できます。
しかし、Castle DictionaryAdapter を作成して直接返すと、コントローラーはまだ null を取得します。
WebAPI が Castle DictionaryAdapter を嫌う理由は何ですか?
castle - ConfigurationManager.AppSettings からの変更を監視するように DictionaryAdapter に指示する方法は?
DictionaryAdapter を使用して、asp.net Web サイトの appSettings セクションから設定を取得します。IoC 構成は、起動時に 1 回行われ、単一の Configuration.AppSettings オブジェクトを使用して、ゲッターを使用するすべての種類の異なるインターフェイスが登録されます。
Web.config ファイルでホストされている appSettings セクションは正常に機能しますが、実行時に一部の設定を更新する場合に欠点があります。web.config ファイルなので、アプリ全体を再起動します。副作用として Web サイトを再起動することなく、実行時に構成を変更できるようにしたいと考えています。したがって、別のファイルに移動しました。
現在、ConfigurationManager.AppSettings["key"] を介して取得すると変更が反映されますが、DictionaryAdapter から動的インターフェイスを介してアクセスすると変更が反映されません。
ソースの変更を監視し、値をキャッシュしないように DA に指示する方法はありますか?