問題タブ [autofac]

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 に答える
835 参照

autofac - ジェネリック型に応じた依存関係の解決 - Autofac

GenericClassジェネリック型 ( ) に依存する依存関係を持つジェネリック クラス ( ) がありIGenericDependencyます。この依存関係も一般的です。

型パラメータは実行時までわかりません。

これまでのところ、私はこれを行ってきました:

Funcを注入しています。

そして再登録コード:

これを行う別の方法があるかどうか疑問に思っています。

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

registration - MVC2のFluentValidationを使用したAutofac

ValidatorFactory.CreateInstance呼び出しの実行中に、「登録されていないエラー」が発生します。メソッドに送信されているタイプが正しいようです。

私の登録コード:

私のValidatorFactoryコード:

私のビューモデルとバリデーターコード:

私の最善の推測は、バリデーターを間違って登録しているということです。

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

.net - Autofac - サービス コンストラクターはインスタンス化オブジェクトを参照します

対処方法:

現在のコードは次のようになります。

FooService を Autofac で Class1 に注入したいと考えています。この登録はどのように行われますか? ありがとう。

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

c# - プラグイン アーキテクチャの DI (Autofac): プラグインごとに 1 つの個別の DI コンテナーで問題ありませんか?

既存の Windows フォーム アプリケーションに( Autofacを使用して) DI を導入しようとしています。

このアプリケーションには、各プラグインが独自のフォームを表示する基本的なプラグイン アーキテクチャがあります。起動時に、アプリケーションは を実装する型の登録済みアセンブリをスキャンしIPlugin、 を使用してこれらをアクティブ化しActivator.CreateInstanceます。

このフレームワークを変更することはできません。つまり、各プラグイン クラスは DI 以外の方法でインスタンス化されるため、プラグインごとに個別の DI コンテナーをブートストラップする必要があるように思えます。

私の質問はContainerBuilder、プラグインごとに別のコンテナーを作成しても問題なく、それでもかなり効率的ですか? (約 10 の異なるプラグインがあります。) または、アプリケーション全体に対して 1 つの DI コンテナーのみが必要ですか?

以下に、現在のソリューションのサンプル コードをいくつか示します。


また、プラグイン コンストラクターでコンテナーを作成し、単にそれを忘れているかどうかもわかりませんが、バックグラウンドで自動配線を行うためにそのままにしておいても問題ありませんか?

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

.net - Autofacで、Buildが呼び出された後に登録されたインスタンスを変更するにはどうすればよいですか?

だから私はこのコードを持っているとしましょう

それからしばらくMyTypeして、で呼び出される将来のすべての解決のためにのインスタンスを変更したいと思いますcontainer

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

asp.net - Autofac を使用して NHibernate の IUserType の実装にサービスを注入する

NHibernate を使用して、ASP.NET MVC アプリケーションで次のクラスを Oracle データベースにマップしています。

私が見つけたいくつかの例に従って、NHibernate の IUserType の実装を使用して、データベースexampleに永続化または取得するときにデータを変換したいと思います。

アプリケーションの他の部分でデータ暗号化を処理するクラスを既に作成しているのでEncryptionService、それをユーザー タイプに挿入したいと考えています。Autofac を使用して IUserType でコンストラクター インジェクションを実行する方法はありますか?

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

asp.net-mvc-2 - Autofac - プラグインの登録

いくつかのメソッドを定義するインターフェースがあり、それを実装する N 個のクラスがあります。ロードされたすべてのアセンブリで見つかったすべてのクラスをautofacで登録するにはどうすればよいですか?

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

mvvm - ViewModel を Container に登録する必要がありますか?

ViewModels を Container に登録し、そこから解決する必要がありますか?

利点:

  1. ビューモデルがアクティブになっているときにいくつかのアクションを実行できます
  2. コンテナは私のために依存関係を注入します
  3. ???

欠点:

  1. ViewModel の有効期間の管理には注意が必要です。
    • ViewModel シングルトンを作成すると、同じタイプの複数のコントロールをインスタンス化できません
    • ViewModel を一時的にすると、実際には同じインスタンスが注入されると予想されるときに、いくつかの異なるインスタンスが存在するという状況に簡単に陥る可能性があります。
  2. ???

正解は?生涯不利益を軽減できるのであれば、登録したいと思います。

必要に応じて、Caliburn と Autofac を使用しています。

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

asp.net - Autofac-タイプ別にプラグインを登録する

私はプラグインシステムを書いています:すべてのプラグインはautofacによってロードされなければならない彼自身のアセンブリにあり、プラグインのタイプを設定するパラメータを持つ属性によって署名されています。asp.net mvcアプリでプラグインをタイプ別に解決できますが、どうすればよいですか?すべてのプラグインは抽象クラスによって継承され、事前定義されたメソッドをオーバーライドします。

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

nhibernate - NHibernate ISession の使用法とスレッド セーフ

ISession の有効期間を「HTTP リクエストごと」 (使用している Autofac の InstancePerLifetimeScope) に設定すると、NHibernate プロファイラーはセッションがスレッド間で使用されていることを通知します。これはおそらくバグです。何が起こっている?作業単位を http リクエストにスコープする必要があると考えるのに慣れていますが、実際にはセッションが複数のスレッドで使用されているようです。

基本的に、この「HTTP リクエストごとの ISession」は、NHibernate プロファイラーのアラートと競合します。どこが間違っていますか?

更新: Web.config に ContainerDisposalModule があるため、破棄は正常に機能します。