問題タブ [inversion-of-control]
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.
inversion-of-control - Windsor Container:パブリックプロパティをコンテナで埋めないように指定する方法は?
クラスをインスタンス化するとき、Windsor はデフォルトでクラスのすべてのパブリック プロパティをオプションの依存関係として扱い、それらを満たすようにします。私の場合、これはかなり複雑な循環依存関係を作成し、アプリケーションをハングさせます。
公共の財産を満足させようとしてはならないことをウィンザー城に明示的に伝えるにはどうすればよいですか? その程度の属性があるに違いないと思います。しかし、見つからないので、適切な名前空間/アセンブリを教えてください。
属性なしでこれを行う方法がある場合 (Xml 構成やコードによる構成など)、これが行われている特定のライブラリはこれまで城への依存を必要としなかったため、それが望ましいでしょう。
.net - Windsor コンテナと内部プロパティ
「内部」としてマークされたコンポーネントのプロパティを初期化する方法はありますか? InternalsVisibleTo 属性にどのアセンブリ名を使用する必要がありますか?
.net - Castle Windsor: メソッドではなくファクトリ プロパティにコンポーネントを接続する方法
次のコンポーネントがあります
タイムスパンはプロパティ ISettings.MyTimerFrequency によって提供される必要があります。
これをウィンザーコンテナxmlに接続するにはどうすればよいですか? 私はこのようなことができると思いました:
MyTimerFrequency は、ファクトリ機能がメソッドを予期している場合のプロパティであるため、エラーが発生します。
ここに簡単な解決策はありますか?全体に間違った方法でアプローチしていますか?
編集:間違いなく解決策があります。以下の私の回答を参照してください。
c# - Castle Windsorコンポーネント登録のコンテキストでの「ForwardedTypes」とは何ですか?
主題が言うように、本当に!彼らは何をしますか?
c# - 特殊なサービスタイプもある場合、Castle Windsorの流暢なインターフェイスを使用してコンポーネントをデコレータチェーンに登録しますか?
IRepositoryに基づいてデータアクセス用のデコレータチェーンを実装しようとしています。データアクセス(現時点ではメモリ内リストのみ){1}を実行するリポジトリがあり、検証{2}を実行するリポジトリがあります。その上、私は自分のリポジトリの特殊化であるIUsersRepository {3}を持っています。これは、ベースインターフェイスで別のメソッドを定義します。最新のトランクリビジョン5376で実行しています。
流暢なインターフェースを使用してコンポーネントを登録できるようにしたいのですが、XMLを介して、innerRepoとして使用するサービスのキーを指定することはできますか?もしそうなら、どのように?( XML構成の例については、Bitter Coder Decoratorチュートリアルを参照してください)。他のことは別として、登録の順序に依存する必要はありません。
私はこのブログ投稿をフォローしています。
コンテナにIRepository{4}を要求すると、デコレータチェーンを機能させることができました。データアクセスの前にValidatingRepositoryメソッドが呼び出されるのがわかります。しかし、コンテナにIUserRepositoryを要求した場合、それを機能させることができませんでした(InvalidCastExceptionが発生します-これは予期されていると思いますが、回避可能ですか?)。
サービスで1つのdecorated-repoリポジトリと1つのspecialized-methodsリポジトリを使用する必要がないようにしたいと思います。これはエラーが発生しやすいと私を襲います。現時点では、私の専門的なメソッドはすべて、さまざまな基準でエンティティをフェッチすることと関係があります-Getメソッドに分離基準を取得させることができると思います-これにより、インターフェイスに1つだけを設定でき、特殊なインターフェース。NHibernateを確実に使用することに決めていないため、許可されていないことを除いて。おそらく、IRepo.GetをデリゲートまたはIQueryableにした場合はどうでしょうか。何か案は?私は今朝ずっと頭をぶつけてきました、そして私がトンネル視力を持っていても驚かないでしょう、そして別の、より良い、アプローチがあります。どんな提案も歓迎します!
{1}-{4}は、utilitybaseのコピー/貼り付け機能で確認できます。
.net - Unity/ObjectBuilder から型を解決するためにいくつかのデフォルト アセンブリを追加する方法はありますか?
MS Unity IoC フレームワークを使用して、最初のプロジェクトに取り組んでいます。
私のユニティ構成にこれがある場合:
次に、エラーが発生します。
アセンブリ 'Microsoft.Practices.Unity.Configuration、Version=1.1.0.0、Culture=neutral、PublicKeyToken=31bf3856ad364e35' から型 'PFServer.DataAccess.TestDataAccess' を読み込めませんでした。
ただし、アセンブリ名を型定義に追加すると、次のようになります。
その後、正常に動作します。型をロードするアセンブリの既定のセットを追加する方法はありますか? この場合の奇妙な点は、"PFServer.dll" がこのすべての構成を含むアセンブリであることです。現在のアセンブリがオブジェクトを解決するパスにないのは奇妙だと思います...または、何か間違っているのでしょうか?
sql-server-2005 - StructureMap と SqlCacheDependency
StructureMap IoC を介して SqlCacheDependency を有効にしようとしています。LinqToSql を使用しています。Linq キャッシングを処理するためのコードを作成しましたが、これをグローバルに配置する必要があるため、SqlCacheDependency を設定する方法がよくわかりません。 asaファイル
ただし、私のリポジトリは、web アプリケーションではなく単なるライブラリ (.dll) として global.asa を使用していません。
これを行う方法はありますか?たぶん、application_start メソッドの内容をリポジトリのコンストラクターに入れますか?
apache-flex - フレックスプラーナ
Prana Framework for AS3 (Flex/Flash) をすでに使用している、または聞いたことがある人はどれくらいいるでしょうか?
非常に便利だと思いますが、それを使用している開発者は多くないようです...
リンクはPranaFrameworkです
Thx、Lieven Cardoen aka Johlero
.net - .NET: 構成ファイルを使用して具象クラスを選択する
(この質問は特に C# での質問ですが、一般的には .NET に適用されます)
私は、かなり優れた設計の大きなアプリケーションを持っており、インターフェイス上で主要なセクションに分割されています (これは、並行開発を支援するために行われました)。
これで、必要なインターフェースを実装する具象クラスの基本セットができましたが、別の状況やテスト用の具象クラスの追加セットもあります。
現時点では、これらすべてのクラスをコードの最上位レベルにまとめています。
コンポーネントを交換したい場合は、その行を変更して再コンパイルするだけです。
それはうまく機能しますが、明らかに再コンパイルが必要です.configファイルの値を使用して具象クラスを選択したほうがよいでしょう。
構成ファイルを使用して具体的なクラスを変更するための標準的なパターンは何ですか? この問題を解決するために使用できる標準ライブラリはありますか?
ありがとう!
asp.net-mvc - ASP.NET MVC ベータ 1: DefaultModelBinder は、無関係な要求間でパラメーターと検証状態を誤って保持します
デフォルトのモデル バインディングを使用してフォーム パラメータをアクションのパラメータである複雑なオブジェクトにバインドすると、フレームワークは最初のリクエストに渡された値を記憶します。つまり、そのアクションへの後続のリクエストは最初と同じデータを取得します。パラメーター値と検証状態は、関連のない Web 要求間で保持されます。
これが私のコントローラーコードです(service
アプリのバックエンドへのアクセスを表します):
私の .aspx ビュー ( ViewPage<RunTime
> として厳密に型指定されたもの) には、次のようなディレクティブが含まれています。
これは、モデルのプロパティを自動バインドするためDefaultModelBinder
のクラスを使用します。
ページにアクセスし、有効なデータを入力します (例: time = 1)。アプリは新しいオブジェクトを時間 = 1 で正しく保存します。次に、もう一度押して、別の有効なデータ (時間 = 2 など) を入力します。ただし、保存されるデータは元のものです (たとえば、時間 = 1)。これは検証にも影響するため、元のデータが無効であった場合、今後入力するすべてのデータが無効と見なされます。IIS を再起動するか、コードを再構築すると、永続化された状態がフラッシュされます。
この問題は、独自のハードコーディングされたモデル バインダーを作成することで解決できます。その基本的な単純な例を以下に示します。
何か不足していますか?最初のデータが 1 つのブラウザーに入力され、2 番目のデータが別のブラウザーに入力された場合に問題を再現できるため、ブラウザー セッションの問題ではないと思います。