問題タブ [property-injection]

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.

0 投票する
7 に答える
3970 参照

inversion-of-control - Windsor Container:パブリックプロパティをコンテナで埋めないように指定する方法は?

クラスをインスタンス化するとき、Windsor はデフォルトでクラスのすべてのパブリック プロパティをオプションの依存関係として扱い、それらを満たすようにします。私の場合、これはかなり複雑な循環依存関係を作成し、アプリケーションをハングさせます。

公共の財産を満足させようとしてはならないことをウィンザー城に明示的に伝えるにはどうすればよいですか? その程度の属性があるに違いないと思います。しかし、見つからないので、適切な名前空間/アセンブリを教えてください。

属性なしでこれを行う方法がある場合 (Xml 構成やコードによる構成など)、これが行われている特定のライブラリはこれまで城への依存を必要としなかったため、それが望ましいでしょう。

0 投票する
1 に答える
3584 参照

dependency-injection - Castle Windsorにプロパティを自動的に挿入させるにはどうすればよいですか?

クラスにロギングサービス用のプロパティがあります。

そして、私は私のコンポーネント登録にこれを持っています:

しかし、ウィンザーはロガーを注入していないようです-私は何かが足りないのですか?

0 投票する
3 に答える
1853 参照

inversion-of-control - Microsoft Unity を使用したプログラムによるプロパティ インジェクション

私は自分のソリューションでコンストラクター注入を使用していますが、この 1 つのクラスには、不変の依存関係があるコンストラクターに渡したくないプロパティがあります。

ILogger を取得し、設定したい FileName プロパティがあり、コンストラクターで依存関係を設定しているとします。タイプを登録すると同時に、デフォルトの接続文字列を渡すにはどうすればよいですか。

それを行う簡単な方法があることを願っています-できればプロパティを属性で装飾することなく、しかし属性を使用してセットアップが簡単であれば、それはクールだと思います:)

問題は、Unity を使用して、コンストラクター注入も使用するオブジェクトにプロパティ値を注入するにはどうすればよいかということです。

更新:タイトルで言及しましたが、テキストの本文で詳しく説明するのを忘れていました-構成ファイルではなく、これらの依存関係を手動で(コードで)設定したいです。

0 投票する
2 に答える
2649 参照

.net - Castle Windsorがプロパティの依存関係を注入しないようにするにはどうすればよいですか?

Castle Windsorが依存関係をプロパティに自動的に挿入しないようにする方法はありますか([DoNotWire]属性以外)?

0 投票する
1 に答える
3511 参照

c# - ActionFilterAttributeのNinject2プロパティインジェクションが機能しない

Ninject 2によっていくつかのプロパティが注入されることを期待するメソッド属性がありますがuserSessionjobRepositorynullとして表示されます。

そして、これがコントローラーのメソッドです。

コントローラーでコンストラクターインジェクションを使用すると、コントローラーのパラメーターがインジェクトされるため、セットアップが機能していることはわかっています。プロパティインジェクションを使用する必要がありますが、属性についてはあまり役に立ちません。ここで何かが足りませんか?

Global.asax.csの適切なポーションは次のとおりです。

0 投票する
1 に答える
1535 参照

structuremap - StructureMap を使用して、プリミティブ コンストラクター引数を持つオブジェクトのセッター依存関係を作成するにはどうすればよいですか?

「ITestProperty」を実装するオブジェクト「TestProperty」があります。"TestProperty" は、文字列コンストラクター引数を取ります。これは、CtorDependency または WithCtorArg の行に沿って何かを使用して StructureMap で構成されます。

「ITestProperty」(「TestProperty」で実装) のインスタンスを別のクラスにプロパティとして挿入したいと考えています。コードを実行しようとすると、例外が発生します (StructureMap エラー コード 205、「要求されたインスタンス プロパティが見つかりません」)。

問題を再現する簡略化されたバージョンを次に示します。

テスト:

レジストリのセットアップ:

テスト オブジェクト:

上記の「TestController」オブジェクトを初期化すると、例外がスローされます。StructureMapでこれを行うことは可能ですか? それが可能だと仮定すると、それを機能させるために何をする必要がありますか?

前もって感謝します。

0 投票する
1 に答える
423 参照

asp.net-mvc-3 - 基本クラスのコンストラクターのプロパティインジェクションで定義された基本クラスプロパティへのアクセス

ninject wikiのすべてと多くの投稿を読みましたが、このプロパティを参照できるようにインジェクションを設定する方法がまだわかりません。基本クラスのコンストラクターでプロパティを参照して、コントローラーの作成時に最終的に共通のViewBagプロパティを設定できるようにしたいと思います。iInitializableインターフェイスを実装することは正しいアプローチのようですが、これを行う方法がわかりません。また、派生クラスのコーディングを簡素化するために、基本クラスコンストラクターにIMyServiceを挿入しないことを選択しました。

私の最新のコードの試みの簡略版:

0 投票する
1 に答える
853 参照

castle-windsor - ウィンザーファンクプロパティインジェクション

Windsor 2.5.2を使用すると、次のように機能します。

IBarの作成を遅らせるために、これも機能します。

ただし、プロパティインジェクションをと組み合わせるとFunc<T>、次の結果がnull参照になります。

ウィンザーに注入させるにはどうすればよいFunc<IBar>ですか?

0 投票する
2 に答える
5385 参照

dependency-injection - Autofac 2.4.5で循環参照を処理する方法は?

循環参照に関するautofacwikiページは、以下を使用すると述べています。

しかし、ActivatedHandlerは2.4.5ではもう存在しないようです。ソースを調べてみると、そのクラスの実装が見つかったので、代わりにOnActivatedにメソッドの実装を入れました。残念ながら、これはまだ機能しません。

ここに、Wikiページにあるような最小限の再現をまとめました。

Resolveが試行されると、このコードはスタックオーバーフロー例外をスローします。私は何が欠けていますか?Autofacに循環依存を処理させる正しい方法は何ですか?

0 投票する
0 に答える
778 参照

dependency-injection - UnityInjectionPropertyはnullプロパティを生成します

ここでのさまざまな投稿は、Unity 2.0(4月)でInjectionProperty()コンストラクトを使用しようとするたびに、解決されたインスタンスのプロパティにデータが入力されない理由を示していません。それらは常にnullです。デバッガーでオブジェクトが作成されていることがわかりますが、挿入されるはずのプロパティへの最初の参照は常にnull参照例外です。私がしていることには、根本的に何かが間違っているに違いありません。

どんな助けでも大歓迎です。

Unityを使用してプロパティインジェクションを実行する方法を決定するためにインターネット上の多くのパスをトラバースしましたが、インジェクションされるはずのnullプロパティを持つインスタンス化されたオブジェクトになります。だからそれは死ぬ。

いくつかの問題があります:

1)これらのPropertyInjectorオブジェクトはデバッガーのどこに表示されますか?採掘の量がこれらを明らかにしていないので、それらが「注入する準備ができている」かどうかを判断することはできません。

2)プロパティを持つオブジェクトは、実際にはResolveを介してインスタンス化されますが、プロパティ値を取得することはありません(プロパティはILogオブジェクトです)。

確かに短いロープかもしれませんが、これで一体何が起こっているのでしょうか?洞察。

コードは次のとおりです。

[Dependency]でプロパティをマークする
必要があるように思われる場所や、コードでのInjectionPropertyオブジェクトの使用によってそれらのマークが上書きされると記載されている場所がいくつかあります。議論はあいまいです。

私はUnity=DisUnityを非常 に恐れており、それを使おうとしても自分自身を台無しにしたかもしれません。