問題タブ [autofactory]

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

asp.net-mvc - Autofac エラー - 'AutofacWebRequest' に一致するタグを持つスコープは、インスタンスが要求されたスコープから表示されません

Web アプリケーションの 1 つで、Autofac を使用する Web サービスを使用しています。svc ファイルは次のとおりです。

次のように、Web サービス アプリケーションの依存関係を登録します。

別の Web アプリケーションから、これらのサービスにも Autofac を使用して接続したいので、次のような依存関係を登録します。

コントローラーの 1 つの中で、次のことを行います。

タイプ IMyWebService の myServiceProxy が解決されています。透過プロキシであることがわかりますが、「CallSomeMethod」を呼び出すとエラーが発生します。

「AutofacWebRequest」に一致するタグを持つスコープは、インスタンスが要求されたスコープからは見えません。これは通常、HTTP ごとのリクエストとして登録されたコンポーネントが、SingleInstance() コンポーネント (または同様のシナリオ) によってリクエストされていることを示します。Web 統合では、常に DependencyResolver.Current または ILifetimeScopeProvider.RequestLifetime から依存関係をリクエストし、コンテナー自体からは決してリクエストしません。 .

ここで何が間違っていますか?ありがとう!

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

c# - モック (Moq) オブジェクトを使用した Autofac モジュールでのインジェクションの変更

以下のようなAutofacモジュールがあります

このモジュールは ServiceClass で使用されます。

私の質問は、(Moq) ITimeConsume クラスをモックして ServiceClass をテストするにはどうすればよいですか? ここで、以下のテストを書きます。

途中でこれが不可能な場合、注入できる時間のかかるクラスをモックするためのより良い設計は何ですか?

**

アップデート:

** @dubs と @OldFox のヒントに感謝します。重要なのは、Autofac インジェクターを内部制御ではなく外部で初期化する必要があることだと思います。そこで、Autofac.ILifetimeScope の「 On Fly 」ビルド機能を活用し、LifeTime スコープ パラメーターを使用して ServiceClass コンストラクターを設計します。この設計により、以下の例のように、単体テストで任意のサービスをオンフライで登録できます。

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

java - 同じモジュールで使用されている場合、IntelliJ は生成されたソースを見つけることができません

Google の AutoFactory の注釈プロセッサを使用しています。同じモジュール内の別の場所で注釈を付けSomeClass@AutoFactory参照しました。new SomeClassFactory().create()

Maven 構成:

Maven に必要な依存関係を追加しました。

実行すると、$ mvn clean compileそれtarget/generated-sources/annotions/somepackage/SomeClassFactoryが作成され、モジュールがエラーなしでコンパイルされることがわかります。

IntelliJ 構成:

  • Reimport all maven modules
  • Preferences-> Annotation Processors->Enable annotation processing
  • Rebuild Project

v14.1.4私の理解が正しければ、私のバージョンの IDEA ( ) ではこれで十分なはずです。

コンパイラの設定 プロジェクトの構造

次の手順も実行しました。

  • generated-sourcesフォルダーがソースとして追加されていることを確認しましたProject Structure
  • MavenプリファレンスGenerated sources foldersがに設定されていることを確認Detect automatically
  • リビルド時にソースが実際に生成されることを確認しました(targetIntelliJによって生成されたことを確認するために、最初にフォルダーを削除しました)
  • @tilpnerExclude output pathsの提案に従って、プロジェクト構造で無効にしてみてください
  • キャッシュを無効にして再起動する
  • .ideaフォルダと.imlファイルを削除する
  • Phase to be used for folders updatein Preferences-> Maven->のさまざまな設定を試してくださいImporting

問題:

これらのすべての手順を実行した後、生成されたクラスはプロジェクト エクスプローラーに表示されません。実際、targetディレクトリ全体はどこにもありません。コンパイルは失敗しcannot find symbol: SomeClassFactorynew SomeClassFactory().create()エディターで赤でマークされますが、Maven は問題なく生成およびコンパイルします。

私には選択肢がありません。助けや提案があれば大歓迎です!

更新:コンパイル エラーの原因となったコードにコメントを付けると、IntelliJ はコンパイル メッセージに次の警告を出力します。Warning:Output path /Users/.../target/generated-sources/annotations intersects with a source root. Only files that were created by build will be cleaned.

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

c# - mock.Provide() を使用して、SUT コンストラクターで使用されるデリゲート ファクトリをセットアップします。

デリゲート ファクトリを介して 1 つのスタブ オブジェクトが渡されたときのクラスの動作をテストしようとしています。すべてのクラスの依存関係 (ファクトリを除く) がモック オブジェクトとして渡され、想定どおりに動作するバージョンのテストを作成しました。今、AutoMock を使用してコンテナにモックを自動的に作成させようとしています。

mock.Provide() を使用して、ClassUnderTest のコンストラクターでデリゲート ファクトリの具体的な値を渡す際に問題が発生しています。(このコメントが示唆するように)

私がテストしているクラス:

ビジネスロジックモジュール:

テストクラス:

}

私が間違っていることについての指摘に感謝します。私は何が欠けていますか?どうすれば修正できますか?単純な構文の修正ですか、それともこのテストへの私のアプローチに何か問題がありますか?

お時間をいただきありがとうございます。

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

android - Dagger-2 と Autofactory の使用中にアシスト インジェクションを実装する際の問題

Dagger-2 (ver: 2.7) とAutoFactory (ver: 1.0- beta3) を使用しています。私は独特の問題に直面しています。

私はクラス MyRequest を持っています。誰の ctor は次のように 2 つのパラメーターを取ります:

  1. ConnectivityManager conmgr
  2. int somevalue

私はctorを次のように作成しました

以下を含むモジュールがあります

同じモジュールで、次のことを行います

互換性のないタイプのビルド エラーが発生して います: ConnectivityManager をプロバイダー < ConnectivityManager > に変換できません。

これを解決する方法はありますか?

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

android - Dagger2 : シンボル @Autofactory クラスが見つかりません

プロジェクトをダガー 1 からダガー 2 に移行したいと考えています。ダガー 2 の依存ライブラリを追加した後、プロジェクト内のすべての @Autofactory クラスで「エラー: シンボル クラス MyClassFactory が見つかりません」というエラーが発生します。ただし、これらのクラスは生成されていますが、IDE によって認識されていません。このクラスは、dagger1 で正常に機能しました。同様の問題に直面した場合、誰かが私を助けることができますか?

私は次のライブラリを使用しています。

助けてください。

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

java - @AutoFactory を @AutoValue クラスで使用するにはどうすればよいですか?

単純な AutoValue クラスがあるとします。

ファクトリーが必要になったので、Foo が必要になるたびに commonDep を渡す必要がなくなりました。これが AutoValue クラスでない場合は、 CommonDependency に注釈を付けることで、これに AutoFactory を簡単に使用できます@Provided

これら 2 つのコード ジェネレーターをうまく連携させる方法を知っていますか?

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

c#-4.0 - Autofac - JSON 構成を使用して登録されたインスタンスを解決する方法

私たちの要件は、異なるユーザー定義スレッドに対して異なる Logger インスタンスを持つことです。

] }

この JSON を作成し、それをモジュールとして登録して、18122 と 18105 の各値を個別に登録できるようにしました。

2 つのフォルダーが作成されますが、ロガーはそのファイルに書き込みません。他のファイルにも書き込みます。つまり、解決して取得したインスタンスは、その特定の値のインスタンスではありません。

コンストラクターに挿入すると、18105 のみが解決されます。

誰か助けてください!

ありがとう!