問題タブ [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.
c#-4.0 - Ninject.Extensions.Logging.Log4net の予期しない動作
NuGet 経由でインストールされたように、Ninject の (2.2.1.4) Extensions.Logging.Log4net (2.2.0.4) を介して Log4Net (1.2.10) を使用すると問題が発生します。
Log4Net に直接アクセスすると、次のようになります。
結果は次のとおりです。
ただし、Ninject を介してロガーにアクセスすると、次のようになります。
NinjectLoggerTest は単純に次のとおりです。
やや予想外ですが、結果は次のとおりです。
さらに悪いことに、ILogger の Trace メソッドを使用すると、mscorlib.dll で「System.FormatException」タイプの最初の例外が発生します。
私は何か間違ったことをしていますか?どうすればこれを修正できますか?
ティア
ninject - 基本クラス、つまりAと独立したインターフェイス、つまりICを実装する子クラスがバインディングに使用されている間にABaseクラスをインターセプトします。
ABaseクラスをインターセプトし、基本クラス(A)と独立したインターフェイス(IC)を実装するChildクラスをバインディングに使用します。
プロキシ化されたオブジェクトでnullに設定されるプロパティがAにある場合、問題が発生しますが、プロキシ化されたオブジェクトのインスタンスでは、デバッグビューでそのプロパティに適切な値があります。
正確には 、実際のコードを含む要点https://gist.github.com/424637484504b89789d6へのリンクを追加します。
誰か助けてくれたらとてもありがたいです。
乾杯、ジャニ
wcf - WCF サービスを使用した Ninject Di バインディング
最近、WCF サービス ライブラリを作成しました。IISでホストする予定です。リポジトリ レイヤーを再利用したいので、WCF サービスでも Ninject を使用することにしました (ソリューションの他のプロジェクトで使用しています)。
Ninject Wcf 拡張機能をインストールしました。svc ファイルの NinjectServiceHostFactory を使用して構成しました。NinjectWcfApplication から継承する CreateKernel() をオーバーライドするために Global.asax ファイルを追加しましたが、バインディングを正しく使用しているかどうかわかりません。私は最初に始めました:
しかし、データベースにデータが保存されていないため、これが機能しないことにすぐに気付きました。WCF サービスは ASP.NET パイプラインを使用していないようです。データがデータベースにコミットされているかどうかを確認するためだけに、これらの両方を試してみました。
運がない。私はそれから試してみることにしました:
これは機能しましたが、WCF サービスに着信するすべての要求でデータベース コンテキストを共有したくありません。その後、いくつかの調査を行い、次のアプローチを見つけました。
これは機能しますが、正しいですか?MVC アプリケーションの InRequestScope に似たものが必要です。サービスへの各リクエストは、独自のデータベース コンテキストを取得する必要があります。
visual-studio-2010 - No available source for Ninject bootstrapper
I have been added Ninject Mvc Extensions via nuget to my project and it has been put NinjectMVC3 file into App_Start folder. If i stepping into my source codes, "No available source" page appear front of me.
Problem is that i can not access next step into code line. I have to find next step in my own code and put breakpoint.
It is looking for NinjectDependencyResolver.cs but there is no such a file in current path as it has been show in below information.
Below is source file information from Visual Studio.
#xA;How can i get rid of this problem ?
wcf - Ninject 拡張機能を使用して MVC3 WCF サービスに依存関係を注入する
WCF を介していくつかの機能を公開する必要がある MVC3 アプリケーションがあります。これらの関数の一部には依存関係があり、Ninject を使用してそれらを注入したいのですが、これが機能しないため、ここで明らかな何かが欠けているに違いありません。誰でもヒントを与えることができますか?これが私がしたことです:
1) MVC3 アプリで、ナゲット経由でNinject Wcf 拡張機能を追加します。
2) 次のような.svc ファイルを追加します。
3)次のような対応するコードを追加します(これは単なるテストなので、ここではダミーのインターフェースを使用しています):
4) App_Start/ NinjectMVC3.csで:
ここで、svc にアクセスすると、Ninject から次の例外が発生します。
System.ArgumentNullException はユーザー コードによって処理されませんでした
Message=Cannot be null パラメータ名: ルート ソース=Ninject
ParamName=ルート2\ninject\src\Ninject\Infrastructure\Ensure.cs: 20 行目 Ninject.ResolutionExtensions.GetResolutionIterator(IResolutionRoot root、Type service、Func2 constraint, IEnumerable
1 つのパラメーター、Boolean isOptional、Boolean isUnique) の c:\Projects\Ninject\Maintenance2.2\ninject\src\Ninject\Syntax\ResolutionExtensions.cs:Ninject.ResolutionExtensions.Get[T](IResolutionRoot ルート、IParameter[ ] parameters) in c:\Projects\Ninject\Maintenance2.2\ninject\src\Ninject\Syntax\ResolutionExtensions.cs:line 37 at Ninject.Extensions.Wcf.NinjectServiceHostFactory.CreateServiceHost(Type serviceType, Uri[] baseAddresses) in c :\Projects\Ninject\Maintenance2.2\ninject.extensions.wcf\src\Ninject.Extensions.Wcf\NinjectServiceHostFactory.cs:System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(String constructorString, Uri[] baseAddresses) の 48 行目System.ServiceModel.ServiceHostingEnvironment.HostingManager.System.ServiceModel.ServiceHostingEnvironment.HostingManager.ActivateService(String normalizedVirtualPath) で CreateService(String normalizedVirtualPath) System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath) で
generics - Ninject を使用してジェネリック インターフェイスのすべてのバインディングを取得する方法
Ninject 2.2を使用して、次の失敗したテストがあります(簡略化):
最初の 2 つのアサーションはパスしたので、型自体が正しくバインドされていることはわかっていますが、オープン ジェネリック インターフェイスのバインドをすべて取得することはできません。これはまったく可能ですか?
ninject - Ninject モジュールを既存のカーネルに追加する
ネットワーク上に存在するネットワーク デバイスに基づいて有効化および無効化されるアプリケーションに多数の機能があるシナリオがあります。Ninject を使用して、アプリケーション内の現在の機能ツリーを管理しています。
私がやりたいことは、アプリケーションの実行中に、一連のバインディングをカーネルに追加および削除できるようにすることです。これらを一緒にバンドルできるように Ninject モジュールのようなものを使用したいのですが、既存のカーネルからモジュールを追加/削除する方法がわかりません。
誰でもこれを行う方法を知っていますか、それともより良いオプションがありますか?
c# - .NET RESTful アプリケーションで Ninject を使用していますか?
私は RESTful サービスを初めて使用し、しばらくの間 IoC を使用してスタックを新たに接続する必要がなかったので、これは私に軽度の脳卒中を与えています。
次のようなWCFサービスがあります(簡略化):
わかりました、それはかなり簡単です。BLL TXESIIDService メソッドを呼び出すため、コンストラクター パラメーターを追加しました。
そこで、Ninject のグローバル ファイルを次のように変更しました。
また、私のモジュールを追加しました:
トラブルシューティングのために、独自の NinjectServiceHostFactory で追加しました
これを次のように実行すると、次の行のエラーが表示されます。
null にすることはできません。
明らかに、ここで何かが欠けていますが、何がわかりません。この時点でさまざまなことを試しましたが、私が目にするほとんどの例は WCF サービス用であり、私が見つけた RESTful のものは、Ninject や IoC の常連に慣れ親しんだものに少し合わせすぎています。
また、私のビジネス レイヤーとデータ レイヤー (エンティティ フレームワークを使用) では、そこにも Ninject を実装しようとしています。レイヤーを別々に配線するのがベスト プラクティスですか、それともすべてを 1 か所で行うことは可能ですか?
ありがとう。
UPDATE 1 バインディングの問題を修正しましたが、これはまだ私を爆撃します. 私は Ninject.Extensions.Wcf を使用していますが、まったく正しくないように見える NinjectWcfApplication.cs ファイルを探して爆撃しています。NuGet を使用して Ninject のパッケージを含めましたが、これはバージョンの問題でしょうか?
wcf - WCFとインターセプトを使用した注入(AOPの場合)
私は、wcf拡張機能とdynamicproxy2拡張機能によるインターセプトを使用して、njectをwcfで機能させることを試みてきました。基本的にTime属性を作成し、すべて基本的なシナリオで機能させました。問題が発生するのは、ninjectモジュールで、コンストラクター引数を使用してサービスバインディングを作成する場合です。
すべてが正常に機能しますが、Time属性はService1またはMyDependencyの何に対しても起動しません。
時間属性は、インターネット全体に浮かぶ標準的な属性です。他の唯一のコードは、CreateKernelメソッドがglobal.asaxであり、次のようになります。
助けてくれてありがとう!
マット
2011年12月12日編集:リクエストに応じて、以下に詳細を追加しました。wcfninjectモジュール全体:
global.asaxのcreatekernelメソッドは上にあり、global.asaxはNinjectWcfApplicationを継承しています。
サービス方法は次のようになります。
これは役に立ちますか?
'WithConstructor'引数を削除したため、timeintercept属性はGetMyStringで起動しますが、GetDataでは起動しません。
マット
ninject - ニンジェクトインターセプター
caliburn.micro フレームワークを使用して WPF デスクトップ アプリケーションを開発しています。メソッド呼び出しをインターセプトできるように ninject インターセプターを構成したいと考えています。コードのあちこちに多くの try-catch ブロックがないように、集中化された場所で例外を処理するためにこれを行いたいと思います。
ninject ですべてを配線するたびに、システムが例外をスローするため、これを達成できませんでした。
だからここにいくつかのコードがあります:
AppBootstrapper の構成メソッドは次のようになります。
今私のインターセプターのインターセプトメソッド:
ビュー モデルのメソッドは次のようになります。
これが、インターセプターが機能するはずの方法です。しかし、プログラムを実行するたびに機能せず、ninject が SomeViewModel のインスタンスを ISomeViewModel に挿入しようとすると、プログラムの実行が失敗し、これがスローされる例外 (およびスタック トレース) です: http://pastebin .com/qerZAjVr
これで私を助けてくれることを願っています、事前に感謝します。