問題タブ [constructor-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.
mvvm - Unity / Caliburn Micro、複数のパラメーターを備えたインジェクションコンストラクター
私は現在、UnityとCaliburnMicroを使用してMVVMを実装する方法を学ぼうとしています。他の場所で助けを探した後、コンストラクタインジェクションを適切に設定する方法がまだわかりません。MVVMやその他の専門知識が不足しているために、これが機能していないかどうかはわかりません。
私の問題は、ユーザーがボタンをクリックしたときにナビゲートできる2つのIScreenオブジェクトをメインウィンドウ(シェル)クラスに渡したいことです。MainWindowViewModelクラスのコンストラクターのコードは次のとおりです。
これは、Bootstrapper(Unity)クラスで使用しているコードです。
これを実行すると、MainWindowViewModelはStringsViewModelの2つのインスタンスを受け取ります。ただし、ステートメントにキーを入れる場合は、次のようになります。
次に、CampaignsViewModelの2つのインスタンスを渡します。CampaignViewModelとStringsViewModelの1つのインスタンスで渡すようにInjectionConstructorに指定する方法がわかりません。GetInstanceメソッドと関係があるのではないかと思いますが、よくわかりません。
どんな助けでも大歓迎です!
ありがとう。
.net - コンストラクター インジェクション - 呼び出す場所は?
コンストラクター インジェクションのパターンとルールについて少し混乱しています。コンテナーを呼び出さないでください。それはあなたに電話します。
コンストラクター インジェクションを使用して、実際のアプリケーションがすべての DI の利点を引き出す方法を誰かが私 (そしておそらく他の誰か) に説明できますか? 私はそのいくつかの簡単な例を挙げますが、一般的な例だと思います:
関係は明白です (私は思います) - RepositoryObject には DaoObject が必要です。DomainObject には Repository が必要です。
コンストラクター インジェクションの使用 NEW キーワードについて (ほとんどの場合) 忘れることができると思いますが、いつ、どこで、どのように新しいオブジェクト (主にドメイン) を作成する必要がありますか? すべてのクラスのファクトリを作成する必要がありますか? その工場でDIコンテナを参照する必要がありますか?
誰かが実際のアプリの例を見せてくれたり(Asp.Net MVCではないでください:))、プロジェクト構造をスケッチしたりするのが最善です。
c# - StructureMap: ネストされた依存関係の具体的なタイプを選択する
電卓:
電卓戦略:
電卓の使用法:
ストラクチャマップ レジストリ:
CalculatorUsageOne の場合、数値を追加します ( AdditionCalculatorを使用します)。CalculatorUsageTwo の場合、数値を乗算します ( MultiplyCalculatorを使用します)。
StructureMap でこれを達成するにはどうすればよいですか?
c# - Unity:複数のコンストラクターを使用したコンストラクターインジェクション
Unityコンストラクターインジェクションを使用してEFObjectContextをインジェクトしようとしています。私の試みは、次のようにブートスラッパーにタイプを登録することです。
EFは、次のような複数のコンストラクターを作成します
コードをデバッグするとき、UnityはResolutionFailedExceptionをスローして、「タイプMyObjectContextには長さ1のコンストラクターが複数あります。曖昧さを解消できません。」次のコンストラクターを持つ新しいクラスが解決されたとき。
私が知る限り、RegisterType
withnew InjectionConstructor()
引数を使用すると、デフォルトのパラメーターなしコンストラクターが呼び出されます(これが私が望むものです)。Unityが期待どおりにタイプを解決できないのはなぜですか?私は何かが恋しいですか?
よろしくお願いします
ジェイ
castle-windsor - ウィンザー城の工場施設で作成されたインスタンスを取得して、コンストラクターの注入を維持するにはどうすればよいですか?
私は工場施設に少し慣れていないので、私がやっていることがばかげている場合はご容赦ください. コンテナの登録は次のとおりです。
次に、工場から解決します(構成から読み取ったこれらの多くを構築するため、テキスト文字列で作成します)
(例えば)
私が困惑しているのはこれです:すべての計算オブジェクトに次のような基本インスタンスを与えようとすると:
そして、このように派生します
次に、デフォルトのコンストラクターがないことを CW バーフします。
質問: ファクトリを使用して calc オブジェクトを構築する場合、EventAggregator インスタンスの注入 (自動) を許可するようにファクトリ機能を設定するにはどうすればよいですか?
前もって感謝します。
編集: ここに私の CustomTypedFactoryComponentSelector があります:
}
編集: EventAggregator はこちらです。特にない。
インターフェース
そして、俳優
c# - Ninject マルチインジェクションは、私が思っていたほど貪欲ではありません! どうして?
次のようなマルチインジェクション用に設定された ctor を持つクラスがある場合:
そしてバインディングは次のように設定されます:
それでは、両方の武器が注入された状態で Shogun が構築されると思いますか? しかし、これは当てはまりません。ダガーしか取得できません。
次のようなバインディングをさらに追加すると:
その後、将軍は短剣と手裏剣を手に入れます。WhenInjectedInto<T>()
適用されるバインディングのみを制約し、他のバインディングには影響を与えないように見えます。この振る舞いは非常に誤解を招くと思います。
誰かがここで何が起こっているのか説明できますか?
java - Springframework コンストラクター引数
2 つの変数を持つ MainClass があります。これらの 2 つの値を springframework Bean クラス「Test」に渡したいと思います。applicationContext.xml でそれを定義する方法と、これら 2 つの変数値を Bean "Test" に渡す方法を教えてください。
元:
------------ テストクラス ------------
------------- applicationContext.xml -------------
java - EasyMock: Java でコンストラクター呼び出しをモック化する
この掲示板で同様の質問を見てきましたが、どれも私の質問に答えていません。これは奇妙に聞こえますが、モックしているオブジェクトのコンストラクター呼び出しをモックアウトすることは可能ですか?
例:
コンストラクター呼び出しを期待するにはどうすればよいですか? Customer コンストラクターの呼び出しを newInstance を使用するように変更できますが、それが役立つかどうかはわかりません。new Customer(145)
コンストラクターの本体が何をするかを制御することはできません。
これは可能ですか?
.net - Unity が使用するコンストラクターをヒントする方法はありますか?
UnityInjectionConstructor
は、非常に具体的な依存関係 (たとえば、外部依存関係、名前付き登録、または名前なし登録の組み合わせ) を念頭に置いているため、特定のコンストラクターを呼び出す必要がある場合にうまく機能しますが、すべてのパラメーターを指定する必要があります。
Unity の「パラメーターの数が最も多いコンストラクターを見つけて使用する」を、「署名のどこかのインスタンスも受け入れることができるパラメーターの数が最も多いコンストラクターを見つけて使用する」で拡張する方法はありますか?IX
c# - 値型とオブジェクト型の依存関係を持つIoC
IoCのオブジェクトを設計するための最良の方法に関する提案を探しています
Iocに登録されているDataContextに依存するオブジェクト(Service)があるとします。
ただし、nameプロパティも必要です。次のようにオブジェクトを設計できます。
問題は、名前などの文字列オブジェクトの登録が容易ではなく、Iocコンテナでの使用が複雑になるため、Iocコンテナでの使用が非常に複雑になることです。したがって、解決が混乱します。
もう1つのアプローチは、次のように設計することです。
解決が簡単になりました。
唯一のダウンサイトは、名前を指定する必要がなくなったことです。DIまたはIoCの専門家から、これをどのように設計し、具体的なIocコンテナ技術にかなりとらわれないかを聞きたいと思います。
これをどのように使用するかによって大きく異なりますが、名前が実際にオプションである場合は、オプション2が最適です。ただし、名前が必要な場合は、コードの別のポイントに検証ステップを追加することもできますが、Iocを単純化するための設計を行うこともできます。
考え?