問題タブ [dryioc]

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 投票する
1 に答える
82 参照

dryioc - ループ内の依存関係の登録と解決

MVVM を使用するアプリケーションで次のハードコードされたセットアップがあります。

多数の IP アドレスがファイルから読み取られ、各アドレスの結果として、IP からのものを表示する ViewModel が作成されます。

DryIoc にこれを処理させたい場合、どのような方法が最適ですか? すべてのnewオブジェクトは一意の foreach ループです。

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

dryioc - 特定の例で単純型を登録する

次のことを考慮してください

ClassAMasterClassには、とのインスタンスを取り、 typestringという名前のプロパティを公開するコンストラクタがあります。Namesstring[]

ClassBと を取るコンストラクタがIJuicePresserありIEnumerable<string>ます。

ClassCを取るコンストラクタがありIEnumerable<string>ます。

手動で、このようなことをしてそれらを結び付けます。

これらの登録/解決を処理するように DryIoc を設定するにはどうすればよいですか?

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

c# - DryIOC を使用して親階層インターフェイスを使用して解決する方法

私は次のオブジェクト構造を持っています

DryIOC でこれらの親インターフェイスと子インターフェイスの間で何らかのバインディングを行う方法はありますか?

編集:

私はいくつかの調査を行い、RegisterMany がそのトリックを実行したことを発見しましたが、少し混乱しています。

上記の個々の登録行のコメントを解除すると、Resolve は IAction と ICommand では機能しますが、IParser では機能しません。

RegisterMany親タイプが正しく登録されていないようです...

編集2:

を使用して、登録を次のように変更しましたRegisterMapping

IParsers リストの項目は、最初に登録されたマッピングのタイプです。この場合ICommand

私はDryIOC v2.6.2を使用しています

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

dryioc - Autofac からの移行 解決方法

オーチャード キャッシングの設計:

Autofac コード:

質問:

Autofacにはメソッドがあります:

しかし、dryioc でパラメーターを使用して解決策を見つけることができません。dryioc ではどうすればよいですか?

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

dryioc - DryIoc レジストリ クラス

IOC 登録をグループ化するのに役立つ StructureMap のレジストリ機能が気に入っています。

http://structuremap.github.io/registration/registry-dsl/

コンテナーとして DryIOC を使用していますが、うまく機能していますが、レジストリ クラスを再編成する必要がある状況にあります。DryIOC に同等のレジストリ機能はありますか?

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

c# - DryIoc でプライベート コンストラクターを使用した実装をどのように使用しますか?

MyClass内部、保護、または非公開の場合に備えて、DryIoc のコンストラクターを使用するように構成するにはどうすればよいですか?

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

c# - アセンブリを登録すると、列挙型も登録されます

アプリケーションで DI に DRYIOC を使用しています。MVC アプリケーションに、dryIOC に登録したいインターフェースがあります。したがって、以下のように RegisterMany を使用しています。

しかし、私は以下のようにエラーが発生しています

実装タイプ Web.Enums.Enum1 の単一コンストラクターを選択する方法が指定されておらず、パブリック コンストラクターがありません。

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

c# - DryIoc.Container を使用してインターフェイスを実装する特定の型 (実行時に既知) のインスタンスを解決する方法

タイトルは誤解を招く可能性がありますが、基本的には、実行時に(インターフェイスを実装するクラスの型) が指定されている(同じインターフェイス複数の実装が登録されている)インターフェイスの特定の実装DryIoc.Containerを解決したいと考えています。実装を解決するコードは次のようなことを行うことが期待されているため、実装を識別するために使用することはできません: 必要な実装を取得します (実装のタイプは、実行時に読み取る構成を介して取得されます)。serviceKeycontainer.Resolve<IService>(*** here specify the runtime type of the implementation ***)

上記のコードは次をスローします。

インターフェイスの登録済みのすべての実装を取得し、必要な実装を持つ実装をフィルタリングできることはわかっています ( DryIoc のメンテナーによるこの応答https://stackoverflow.com/a/37069854/5767019に似たコードを使用)。コンテナに依頼したときにコンテナに解決させる方法がわかりませんでした。