問題タブ [ninject-extensions]

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

c# - Ninject.Extensions.Logging.Log4Net が生成するクラス/メソッド名の出力が正しくない

依存性注入にNinject 3.0.1.10 を使用しており、log4net 1.2.11 ロギングにNinject.Extensions.Logging 3.0.1.0 を使用したいと考えています。ただし、log4net を直接使用するのではなく、拡張機能を使用すると、ログ ファイルに異なる出力が表示されます。app.config で次のように、ログを記録するクラス/メソッドの名前を出力に含めたい:

次のように、私が見ている問題を示すサンプルプロジェクトを作成しました。

これにより、次の出力が生成されます (Ninject バージョンのクラス/メソッド名が正しくないことに注意してください)。

2行目にソースクラス/メソッドがあると予想されますLoggingWithNinject.LogMessage():21が、代わりにNinjectLog4NetLoggerがソースとして使用されます。ソースを適切に特定するにはどうすればよいですか?

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

c# - ninjectファクトリ拡張を取得して、ファクトリパラメータを依存関係に渡すことができるようにします

Ninject Factory拡張機能を使用すると、ファクトリを自動的に生成し、ファクトリにパラメータをクラスのコンストラクタに渡すことができます。次のテストに合格します。

ただし、私の特定の問題では、次のように、クラス自体ではなく、構築しているクラスの依存関係にファクトリ引数を渡したいと思います。

このテストは次のメッセージで失敗します。

Ninject.ActivationException:intのアクティブ化中にエラーが発生しました一致するバインディングが利用できず、タイプは自己バインドできません。アクティベーションパス:
3)タイプBarのコンストラクターのパラメーターfooへの依存性intの
注入2)タイプBarContainerのコンストラクターのパラメーターバーへの依存性IBarの注入
1)IBarContainerの要求

'Bar'依存関係を解決するときに渡された'foo'引数を使用したいことをファクトリに認識させる方法はありますか?

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

c# - Ninject、WCF、および自動検出

この3つをうまく連携させることができないようです。

1 つの方法で非常に単純なサービスに絞り込みました。

次のような工場があります。

このようにサービスを作成すると...

...ディスカバリーは問題なく機能します。しかし、工場をそのように使用すると...

...サービスはもう検出できません。サービスに関する他のすべては期待どおりに機能します。

ディスカバリーがこのように機能することを喜んだ人はいますか、それとも私が間違っていることはありますか?

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

dependency-injection - ドキュメントに準拠していない Ninject Extensions Factory の NamedLikeFactoryMethod

私の単純な例には小さな問題があります。

私はシンプルな工場インターフェースを持っています:

私はそれを工場としてバインドします:

変換しようとすると:

に:

それはコンパイルされません。

たとえば、このコードはコンパイルされています (しかし、ひどいものです):

私は何を間違っていますか? Ninject 3.0.1.10 Ninject.Extension.Factory 3.0.1.0

コンパイル エラー: https://dl.dropbox.com/u/21806986/Screenshots/shot_19072012_133454.png

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

c# - Ninject ActivationException: IAlertManagement のアクティブ化中にエラーが発生しました

次のエラーが表示されます。

この例外の原因となっているテスト ケースは次のとおりです。

上記のエラーは、ビルド サーバーのユニット テストの 1 つで発生していますが、開発マシンでは発生していません。このテストとほぼ同じテストが他に 7 つあり、ビルド サーバーと開発マシンで成功しましたが、失敗したテストはこれだけです。

IAlertManagement インターフェイスはCoreという dll から来ており、具象型はAlertManagementという別の dll から来ています。Core dll とAlertManagement dll の両方を単体テストプロジェクトにプロジェクト参照として含めています。この状況と同じテストを他に 7 つか 8 つ持っていますが、失敗したのはこれだけです。

どんなアイデアでも大歓迎です。

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

dependency-injection - Asp.NetWebAPIでのNinject.MockingKernelの使用

Ninjectを使用してWebAPIプロジェクトを設定し、最新バージョンのWeb APIで動作させるために、ここで詳しく説明する修正を使用しました。すべてが正常に機能していますが、現在、いくつかのテストを作成しようとしています。

ここで詳しく説明するように、メモリ内ホスティングを使用してテスト用のプロジェクトを実行しています。DelegatingHandlerこれは、認証を実行し、すべてのApiコントローラーで使用される要求メッセージにプロパティを設定するためです。

したがって、テスト用の基本クラスがあり、作業中のNinjectコードからほとんど取得した構成と構成SetUpをセットアップするメソッドがHttpServerあります。

これが私が作成する方法ですMoqMockingKernel

そして、これは私が使用するオブジェクトを登録する方法です:

私はコントローラー自体をテストしていませんが、コントローラーの適切なインスタンスを呼び出したいので、ToSelfにバインドしています。私はこれが正しいと仮定していることを認めなければなりません。これはテストの例です:

基本的に404エラーが発生します。私がそれをデバッグするとき、それは私のに行きますDelegatingHandler、しかしそれは私のコントローラーに行きません。

私はここで根本的にポイントを逃しているように感じます、そして私がやろうとしていることをすることさえできないかもしれません、しかし誰かがこれをする方法または達成するための別の方法のいずれかについて何か提案があれば同じこと、私はすべての耳です。

更新MockingKernel特に指定がない限り、のデフォルトの動作はモックを提供することであるためだと思います。そのため、のモックが返されIHttpControllerSelectorます。私は今、いくつかのデフォルトのものを設定しました:

フォーマッターが指定されていないため、まだ機能していないと思います。私は明日それを試して、それが私をそこに連れて行くかどうか確かめます。

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

c# - ニンジェクトで迎撃。IProxyRequestFactory を読み込めません

Ninject と Interceptor パターンの使い方を学んでいます。

次のインターセプターがあります。

MyClassそして、インターセプターがそれらで動作できるようにするために、仮想の2つの単純なメソッドしか持たないという名前のクラスを用意します。(2 つのメソッドは Echo と double で、その名前が示すとおりです。)

Ninject、Ninject.Extensions.Interception、Ninject.Extensions.Interception.DynamicProxy を NuGet 経由でプロジェクトに追加しました。

using次のステートメントを追加しました。

ブートストラップを行う私の Main メソッドは次のようになります。

指定した行で次のエラーが発生します。

誰が私が間違っているのか教えてもらえますか?

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

asp.net-mvc-3 - ファクトリ拡張機能を備えたNinject3.0.0を使用してASP.NETMVC3のカスタムメンバーシッププロバイダーにファクトリを挿入する際の問題

カスタムメンバーシッププロバイダーを持つASP.NETMVC3Webアプリを作成しています。Ninject.Extensions.Factory 3.0.0カスタムメンバーシッププロバイダーの公共施設に工場を注入しようとしていますが、うまくいきません。

これが私のカスタムメンバーシップクラスとファクトリインターフェイスです。

これが私のメンバーシップ初期化モジュールです:

NinjectWebCommon.csのRegisterServicesコードは次のとおりです。

web.configには、次のものがあります。

Webアプリケーションを起動すると、モジュールの初期化中に例外が発生します。

何が間違っているのかわかりません。Ninject3.0.0を使用したASP.NETプロバイダーの依存性注入に関するRemoGloorのブログ投稿、関連するStackExchangeの議論、およびNamedLikeFactoryMethodに関するこの質問や他の多数の投稿をフォローしましたが、行き詰まっています。私は何が欠けていますか?

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

c# - パラメータを使用したメソッドレベルのインターセプトの挿入

インターセプトのチュートリアルで、メソッドをターゲットにしてインターセプトできることに気づきました。つまり

ドキュメント/チュートリアルでは、インターセプトしようとしているメソッドにパラメーターがある場合、つまりThrowsAnErrorがパラメーターとして文字列を受け入れた場合の対処方法については説明していません。

バインド時にパラメータにアクセスできないので、これを間違った方法で行っているのではないかと思っていました。

編集

実例

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

c# - MoqMockingKernel: System.TypeLoadException: タイプによって違反された継承セキュリティ ルール

MoqMockingKernel クラスを使用しようとしています。(Ninject.MockingKernel.Moq) 単体テスト用の Ninject.MockingKernel 拡張機能から。

MoqMockingKernel の初期化時に、次のエラーが発生します。

System.TypeLoadException: System.TypeLoadException: タイプによって違反された継承セキュリティ ルール: 'Ninject.MockingKernel.MockingKernel'。派生型は、基本型のセキュリティ アクセシビリティと一致するか、アクセスしにくくする必要があります。

私の初期化コード:

どうすればこれを解決できTypeLoadExceptionますか?