問題タブ [simple-injector]
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# - SimpleInjectorはMVC4ASP.NET Web APIをサポートしていますか?
SimpleInjectorIOCコンテナは初めてです。MVC 4 ASP.NETWebAPIを使用したマルチテナントASP.NETMVC実装を必要とするプロジェクトで作業を開始します。
私の質問は、シンプルインジェクターはMVC 4 ASP.NET Web APIをサポートしていますか?このような簡単なインジェクターのドキュメントを読むと、MVC 3が参照され、MVC4もサポートされているかどうかを知りたいと思います。
nhibernate - SimpleInjector:インジェクションはMVC 4 ASP.NETWebAPIでは機能しません
私はこの設定をしています:
Initializeメソッドは次の場所で呼び出されApplication_Start
ます。
しかし、コントローラーアクションを呼び出そうとすると、次のようになりますArgumentException
。
タイプ'PositionReportApi.Controllers.PositionsController'にはデフォルトのコンストラクターがありません
スタックトレース:
System.Linq.Expressions.Expression.New(Type type)at System.Web.Http.Internal.TypeActivator.Create [TBase](Type instanceType)at System.Web.Http.Dispatcher.DefaultHttpControllerActivator.Create(HttpRequestMessage request、HttpControllerDescriptor controllerDescriptor、Type controllerType)
登録できませんISession
。
工場で作成されたISessionを登録するにはどうすればよいですか?
asp.net-mvc - SimpleInjectorInitializer で検証用の Entity Framework オブジェクト コンテキストを取得できません
Simple Injector MVC3 Integration パッケージをインストールしたところ、SimpleInjectorInitializer が App_Start フォルダーに配置されたようです。ただし、Verify() メソッドが Initialize() 内で呼び出されると、Entity Framework オブジェクト コンテキストを取得しようとすると、次のエラーが発生します (内部例外も提供しています)。
また、登録呼び出しを Global.asax.cs Application_Start() から SimpleInjectorInitializer の InitializeContainer() メソッドに移動する必要があるようにも見えました。
この時点で何をすべきか完全にはわかりませんが、この問題は次の質問に多少関連しているようです: Ninject 3.0.0-rc3 にアップグレードした後の接続文字列の例外
アプリケーションは、Entity Framework がそれ自体を認識する前にコンテキストを読み込もうとしているようで、接続文字列を適切に解析できませんか?
asp.net-mvc - StructureMap の ObjectFactory に相当する Simple Injector はどこにありますか
ASP.NET MVC3 アプリケーションで StructureMap から Simple Injector に移行中です。
コントローラー DI に MVC3 拡張機能を使用していますが、StructureMap の静的な側面を置き換えようとすると問題が発生します。への電話があります
アプリのさまざまなレイヤー全体。Simple Injector にはそれを行う方法があるようには見えません。
何か不足していますか?または、Simple Injector は私のアプリケーションには適用できませんか?
あらかじめご了承ください。
c# - Ninject を単純なインジェクターに置き換える
アプリケーションに Ninject を使用しました。Ninject は非常にシンプルで簡単に習得できますが、非常に遅いため、別の IoC を使用して、Ninject と同じように高速であるかどうかを比較しようとしています。
MVC3 用の IoC コンテナはたくさんあり、Simple Injector は私にはとても良さそうに見えますが、Ninject をSimple Injectorに置き換えるには多くの問題があります。
特にAutoMapper
. この行を Simple Injector コードに変換してみます。
手伝ってもらえますか?ドキュメントを読んでググりましたが、これまでのところ解決策はありません。
asp.net-mvc-3 - カスタムModelMetadataProviderをmvc3のSimpleInjectorに登録するにはどうすればよいですか?
モデルメタデータプロバイダーを単純なインジェクターに登録しようとするとエラーは発生しませんが、インスタンスにアクセスすると、デフォルトでmvcにインスタンスが表示されます。
単純なインジェクターを登録しようとしている方法は次のとおりです。
}
c# - Caliburnバインディングの例外
私の問題を説明させてください。長い質問で失礼します。ここに行きます。
ビューがあります(BusyProviderView)
ビューモデルがあります:
再び私はシェルビューを持っています
ビューモデルがあります
DummyOperationルックス
最後に私はBootStrapperを持っています
すべてを設定したように見えますが、実行しようとすると例外がスローされます。
私は問題が原因であると確信しています
cal:Bind.Model = "{Binding}
上記のステートメントを削除すると、プログラムはクラッシュせずに実行されますが、バインディングはありません。
画像を見ると、
serviceTypeはNULLとして渡され、キーは「Please Wait ....」です。これはどこから来たのですか?
asp.net-mvc-3 - コントローラに注入される依存性の数を減らす方法
私はMVC3、Entity Framework v4.3 Code First、およびSimpleInjectorを使用しています。私はこのように見えるいくつかの簡単なクラスを持っています:
次のような別のエンティティがあります。
各Thingy(現在)には、次のような独自のManagerクラスがあります。
その結果、私のMainControllerは次のようになります。
実際には、このコントローラーには2倍の数の依存関係が注入されています。臭い。すべてまたはほとんど同じ依存関係を持つOtherControllerがあることも知っていると、匂いはさらに悪化します。リファクタリングしたい。
私はすでにDIについて十分に知っているので、プロパティインジェクションとサービスロケーターは良いアイデアではありません。
MainControllerは単一の画面であるため、これらすべてを表示して、1つの[保存]ボタンをクリックするだけで編集できるようにする必要があるため、MainControllerを分割できません。言い換えれば、単一の投稿アクションメソッドはすべてを保存します(ただし、それが単一の[保存]ボタンである限り、それが理にかなっている場合は変更してもかまいません)。この画面はKnockoutjsで構築されており、違いが生じる場合はAjaxの投稿とともに保存されます。
私はアンビエントコンテキストの使用をユーモアを交えましたが、それが正しい方法であるとは確信していません。私はファサードを注入することの使用もユーモアを交えました。また、この時点でコマンドアーキテクチャを実装する必要があるかどうかも疑問に思っています。(上記のすべてが匂いを別の場所に移動するだけではありませんか?)
最後に、おそらく上記の3つのアプローチとは関係なく、代わりに、GetAThings()、GetAThing(id)、GetBThings()、GetBThing(id)などの明示的なメソッドを持つLookupManagerを1つ持つ必要がありますか?(ただし、そのLookupManagerには、いくつかのリポジトリー、または新しいタイプのリポジトリーを挿入する必要があります。)
私の考えはさておき、私の質問は、繰り返しますが、このコードをリファクタリングして、注入された依存性の狂った数を減らすための良い方法は何ですか?
c# - シンプルなインジェクターを使用して実行時に依存関係の登録を変更するには?
Simple Injector IoC フレームワークを使用しています。実行時に依存関係の登録を変更できるようにしたいと考えています。たとえば、interface のA
との 2 つの実装があります。実装はアプリの起動時に登録されますが、実行時に変化する可能性のあるフラグに応じて、実装を切り替えたいと考えています。現在、すべてのコントローラーが継承するのイベントでこれを行っています。これが私がやろうとしていることのサンプルコードです。B
I
A
OnActionExecuting
BaseController
よろしくお願いします。
c# - アクションフィルターでの単純なインジェクタープロパティインジェクション
注入したいアクションフィルターはこんな感じで始まります
私は次のようにコンテナを設定しました:
これを実行すると、FrameworkServiceProxy
プロパティはnullになります。
私はこの投稿を読みました:Simple Injector:基本クラスにプロパティを注入し、答えに従いました。このページのSimpleInjectorDocumentationの例も読みました。
私は基本クラスに注入していません、そして多分それは問題ですか?
## アップデート ##
スティーブンスの回答で述べられていることからうまくいくはずだと思うので、私はより多くの情報を追加しています。
MVC 3用のNuGetパッケージを使用しています。これにより、アプリケーションに以下が追加されます。
これにはcontainer.RegisterMvcAttributeFilterProvider();
、フィルタープロバイダーを登録する必要があり、フィルターがコンテナーを介して作成され(この理解は間違っている可能性があります)、プロパティが自動的に接続されることを意味する必要があることを理解していることも含まれます。
私のフィルターは次のようにGlobal.asax.csに登録されています。
フィルタはコンテナによって作成されていないように思われるので、それを実現するには何か他のことをする必要があると思いますか?