問題タブ [tinyioc]
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.
nancy - 複数の登録タイプとして登録されている場合、RegisterMultiple は実装タイプをシングルトンとして保持しませんか?
TypeAというタイプを、 InterfaceAとInterfaceBという 2 つの異なる登録タイプとして追加しようとしています。
しかし、それらを解決すると、 InterfaceA を解決するときに TypeA のインスタンスを 1 つ取得し、InterfaceBを解決するときに別のインスタンスを取得します。両方の解決で同じインスタンスを取得することを期待していますが、そうではありません。
また、呼び出しに.AsSingleton()を追加しようとしましたが、違いはありませんでした。
私は何か間違ったことをしていますか、代わりにインスタンスを追跡するTypeAFactoryなどを追加せずにこれを行うアイデアはありますか?
助けてくれてありがとう。
c# - 実行時に NancyFx 依存性注入を構成する
私は、ローカル ネットワークがメディア プレーヤーをリモートで制御するための小さな自己ホスト型 Nancy サーバーを含むサイド プロジェクトに取り組んでいます。複数のプレーヤーのサポートを有効にするために、ここで概説されているような単純なプラグイン メカニズムを実装しました 。
動的な読み込みと実行はうまく機能しますが、私が直面している問題は、どのプラグイン実装を使用するかを TinyIoC に伝える方法です。現時点では、.dll が保存されている plugins という名前のサブディレクトリがあり、起動時に TinyIoC がこのディレクトリ内の 1 つのテスト dll を検出し、明示的に何も選択せずに依存関係を関連付けます。
メソッド Bootstrapper.ConfigureApplicationContainer が DI 構成を行う場所であることがわかりましたが、動的システムを使用したいので、サーバー プロジェクトにすべてのプラグイン アセンブリへの参照を持たせないため、私の場合は不十分です。
これは TinyIoC でも可能ですか、それとも別の IoC コンテナーを探す必要がありますか?
事前にどうもありがとう
c# - BuildUp を使用した TinyIoC プロパティ インジェクションが Xamarin.iOS アプリで機能しない
Xamarin iOS アプリの ViewController でプロパティ インジェクションを実行できない理由を理解するのに少し苦労しています。
私のタイプは登録されており、次のコードを使用して ViewController コンストラクターで正しく解決されます。
しかし、すべての依存関係を手動で割り当てる代わりに、次を使用して、TinyIoC で ViewController のパブリック プロパティを「埋める」ことができるはずだと思います。
ViewController のコンストラクターで、しかし、ViewController でパブリック プロパティが指定されていなくても、このコード行を実行しようとするとすぐに、stackoverflow 例外が発生し、それに続いて多くのエラーが発生します。
ここで私が間違っている可能性があることを誰かに教えてもらえますか?
c# - Nancy TinyIoC を使用した JsonNetSerializer と JsonNetBodyDeserializer の構成
私はナンシーの初心者です。REST API を作成するためのフレームワークとして使用しています。私は Json.NET に精通しているので、Nancy.Serialization.JsonNet
パッケージで遊んでいます。
私の目標: と の動作をカスタマイズする (つまり、設定を変更する) ことJsonNetSerializer
ですJsonNetBodyDeserializer
。
具体的には以下の設定を取り入れたい...
組み込みの TinyIoC コンテナーを使用してこのカスタマイズを実行し、継承チェーンを回避して、Nancy.Serialization.JsonNet
パッケージの変更によって発生する可能性のある問題を制限したいと考えました。
注: 一時的な回避策として、継承を利用して と を作成CustomJsonNetSerializer
しCustomJsonNetBodyDeserializer
ました。
この構成を組み込むために、少なくともJsonNetSerializer
. JsonNetBodyDeserializer
TinyIoC を使用しての構成はまだ試していません。同様に行われると思います。私が試したすべての作業は私のものですCustomNancyBootstrapper
(から継承していDefaultNancyBootstrapper
ます)。
これまでで最も成功したアプローチ: オーバーライドConfigureApplicationContainer
コードをトレースJsonNetSerializer(JsonSerializer serializer)
し、JsonNet パッケージのコンストラクターを確認しました。
潜在的な問題: コンストラクターが 2 回呼び出されていることに気付きました。この動作は予期していませんでした。
初めてすべてが適切です-私のカスタマイズが追加され、適切に登録されます。ただし、2 回目は、設定のカスタマイズなしでタイプが再登録されます。再登録は、設定のカスタマイズを失った元の登録を置き換えるように見えます。
コンストラクターが2回目に呼び出されたときのコールスタックは、コンストラクターが呼び出され、構築しようとしているように見えることをGetEngine
示しています(私はセルフホストパッケージを使用しているため、これはprogram.csで発生します- )。GetEngineInternal
NancyEngine
using(var host = new NancyHost(uri))
ナンシーに何もしないように伝えるか、チェーンの後半部分に接続する必要があるようです。
どんな助けでも大歓迎です。
c# - コンストラクターの引数を考慮した TinyIoC 用の MVC コントローラー ファクトリの作成
私はいくつかの DI コンテナーをいじっており、TinyIoC が気に入っています。Nancy/fx を通じて初めて紹介されました。
現在の MVC プロジェクトで使用しようとしていますが、コンストラクターにインターフェイス パラメーターを含むコントローラーをインスタンス化できないようです。
私が理解していることから、それは簡単なはずです。基本的な登録を処理する AutoRegister メソッドも付属しています。MVC の DefaultControllerFactory をオーバーライドできるようにする IControllerFactory を実装しました。これは単にコントローラーをインスタンス化するもので、BTW は実行されず、DI を実行しません。
また、TinyIoC を活用するために IDependancyResolver を実装しました。ただし、コントローラーのインスタンス化は機能しません。TinyIoC を使用してコントローラーをインスタンス化するために使用する方法を示すサンプル コードはありますか?
これが私がこれまでに持っているものです。
ControllerFactory コード
DependencyResolver コード
登録コード
インスタンス化を強制するには、UsingConstructor() メソッドを使用する必要がありますか? もしそうなら、どうやってそれを使うのですか?
これは、コンストラクター パラメーターを持たない Home コントローラーのみのエラーのスナップショットです。
エラーメッセージは、引数を持つコントローラーでも同じです。最終結果は、コントローラがインスタンス化されていないということです。
ありがとうティム
asp.net-mvc-5 - MVC5 上の ReactJS.Net が依存関係の解決に失敗する
サーバー側のレンダリングとバンドルを含む、 ReactJS.Netで動作するように ASP.Net MV5 アプリケーションをセットアップしようとしています。
残念ながら、次の例外で失敗します。
タイプ 'React.TinyIoC.TinyIoCResolutionException' の例外が React.dll で発生しましたが、ユーザー コードで処理されませんでした
追加情報: タイプを解決できません: React.ReactEnvironment
この例外は次の行で発生します。
この行は私の_layouts.cshtml
ファイルです。
問題を解決するにはどうすればよいですか?
詳細を説明するために、ここで私がやったこと:
BundleConfig.cs で:
すべてのjsxファイルを含む「Content/ui/components」フォルダーを作成しました(実際には、チュートリアルから取得した「commentsbox.jsx」ファイルは1つだけです。
ReactConfig.cs では、
/li>WebActivatorEx.PreApplicationStartMethod
属性を削除しました。これは、Owin コンポーネントの利益のために、MVC5 ではサポートされなくなったためです。静止画には以下が含まれます:私の
/li>Global.asax.cs
ファイルでは、メソッドを明示的に呼び出してフックReactConfig.Configure
を置き換えます。WebActivatorEx.PreApplicationStartMethod
私の
/li>_layouts.cshtml
ビューには(ファイルの下部に)含まれています:私の見解の1つでは:
/li>そして最後に、私のjsxファイル:
/li>