問題タブ [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.

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

c# - TinyIoCによるコンストラクターインジェクション

依存性注入のためにNinjectからTinyIoCに変更したばかりで、コンストラクター注入に問題があります。

私はそれをこのスニペットまで単純化することができました:

これにより、TinyIoCResolutionExceptionが次のようにスローされます。

その例外の中には、一連の内部例外があります。

コンストラクターインジェクションの使用方法に何か問題がありますか?私は私が呼ぶことができることに気づきます

それは確かに機能しますが、結果はBarのグローバルインスタンスであり、私が求めているものではありません。

何か案は?

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

nancy - NancyFXで使用するためにTinyIOC内に依存関係を登録する

NancyFX内で使用するためにTinyIoc内に追加の依存関係を登録することに関して、もう1つの初心者の質問があります。

アプリケーションの実行時に次の例外が発生し続けます...

現在、依存関係を誤って登録していますが、正しい方法がわからないようです。以下は、カスタムブートストラッパー内のコードです。また、現在のコンテキストを取得して渡す方法がわからないため、現在base.ConfigureRequestContainerメソッドを呼び出していないことにも注意してください。

どんな助けでも本当にありがたいです...どうやら私の無知には限界がありません:)

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

c# - TinyIoC - インターフェイスの複数の実装

IoC と Dependency Injection について学び始めたばかりです。私は MonoTouch プロジェクトを計画しており、TinyIoC を使用したいと考えていましたが、最初にテストしたかったのです。ダミーのクレジット カード処理コンソール アプリを作成していますが、インターフェイスの実装が複数あるため、TinyIoC の構成方法に問題があります。これは私のテストアプリです。

インターフェース:

インターフェイスの 2 つの実装:

VisaPaymentProcessor

AmexPaymentProcessor

シンプルなもの。これで、コンストラクターのパラメーターとしてインターフェイスを受け入れるクラスができました....

クレジット カード プロセッサ

私のコンソールアプリは次のようになります....

Resolveそのため、コンストラクターに渡すインターフェイスの実装をどのように伝えるかを理解しようとしています。このコードを実行すると、常にVisaPaymentProcessor実装が使用されます。

では、TinyIoC が(デフォルトのように見える)AmexPaymentProcessorではなくコンストラクターに実装を渡すようにするにはどうすればよいでしょうか?VisaPaymentProcessor

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

c# - TinyIoc - すべてのインターフェイス登録を AsPerRequestSingleton に設定するにはどうすればよいですか?

上記は、私の TinyIoc 構成を含む既存のアプリケーションのスタートアップです。すべてのインターフェース登録を取り、それらをすべて PerRequestSingletons に変換する方法はありますか? リポジトリが多すぎるため、それらを「1つずつ」実行することはできません。また、NHibernateのセットアップ方法では機能しないため、それらをシングルトンのままにしておくこともできません。

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

.net - TinyIoC: 1 つのインスタンスに複数のインターフェイスを登録する

Autofac を使用すると、.AsImplementedInterfaces() またはチェーン化された .As<>() 呼び出しと .SingleInstance() を使用して、複数のインターフェイスを同じインスタンスに非常に簡単に解決できます。これは TinyIoC でも実行できますか? 同じインターフェースの複数の実装を登録する方法しか見つけられませんでしたが、登録などを連鎖させる方法はありません。

私の理解では、これは IoC コンテナーにとって非常に重要な機能ですよね。

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

xamarin.android - TinyIoC とリリース ビルド

私は最初のリリース ビルドを行っていますが、TinyIoC に問題があり、TinyIoC を介して使用されるインターフェイスを解決しています。

私たちが持っているアーキテクチャは次のとおりです。

Universal.Mobile.Droid.application - メイン アプリケーション

Universal.Mobile.Droid.Interfaces - IUniversalMobileDroidDAO の定義が含まれています

Universal.Mobile.Droid.DAO.UltraliteDAO - IUniversalMobileDroidDAO の実装を含む

リリース ビルドを実行し、デバイスで展開/実行すると、次のエラーが表示されます。

これを解決するには、ビルド/リンカー/マニフェストを微調整する必要がありますか?

よろしく、

ジェームズ

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

c# - IoC を使用した WPF デザイナーの読み込みエラー

私はかなりシンプルで標準的な MVVM WPF アプリを持っています。私は TinyIoC をコンテナーとして使用して、ViewModel の基になるデータとキャッシュ プロバイダーを提供しています。このコードを MonoTouch および Monodroid プロジェクトとも共有したいので、TinyIoC を使用しています。

ViewModels が TinyIoC からのデータ プロバイダーの解決に依存していないすべてのユーザー コントロールは、MainWindow の XAML に追加されたときに正常に動作します。

ViewModel が TinyIoC を使用してデータを取得するデータ プロバイダーを解決するユーザー コントロールは、MainWindow に追加されたときにデザイナー ビューでインスタンス化できません。

重要な注意: アプリを実行するとすべて正常に動作しますが、デザイナーが壊れているだけです。これは大きな障害です。

基本的なコードは次のとおりです。

View / ViewModel / XAML バインディングの標準実装 - ここでは問題ありません。

データ レイヤーの深さでは、IoC コンテナーを使用して、使用するプロバイダー (上記のコードで設定されたもの) を解決します。

これは、デザイナーから得た正確なエラーです。

型を解決できません: C:_dev\Sample\SampleSolution\Sample.Core\Utility\TinyIoC.cs:line 3281 の TinyIoC.TinyIoCContainer.ResolveInternal(TypeRegistration registration, NamedParameterOverloads parameters, ResolveOptions options) の Sample.Core.Data.IDataStoreProvider TinyIoC.TinyIoCContainer.Resolve(Type resolveType) C:_dev\Sample\SampleSolution\Sample.Core\Utility\TinyIoC.cs:line 1314 at TinyIoC.TinyIoCContainer.ResolveResolveType in C:_dev\Sample\SampleSolution\Sample.Core\Utility \TinyIoC.cs:C:_dev\Sample\SampleSolution\Sample.Core\Data\Gateway.cs:line 14 の Sample.Core.Data.Gateway..cctor() の行 1433

このエラーが発生する理由を理解していると思います。デザイナーが MainWindow 内のユーザー コントロールを読み込んで実行する前に、IoC を読み込むためにアプリの起動イベントが発生しません。

繰り返しますが、アプリは正常に動作します-IoCとすべて。デザイナーの読み込みエラーを次のいずれかで停止したいと思います (優先順):

  • デザイナーで適切に動作するようにコードを修正する方法を理解する
  • デザイナーのモック データを使用して既存の制御データをスタブ化する
  • このデザイナー機能を無効にする
0 投票する
2 に答える
984 参照

ravendb - NancyFXで使用されるサービスへのコンストラクターの依存関係を解決する

私は次のブートストラップを持っています

Nancyアプリが次のコンストラクターを使用してBlogServiceをインスタンス化しようとしたとき

アプリケーションが爆発し、ドキュメントセッションを解決できないことを示します。また、テストメソッド内で次のことを試しました(コンストラクターインジェクションを削除しました)。

これも爆発し、documentSessionを解決できないことを指摘します。

NancyFXまたはTinyIoCを使用したのはこれが初めてなので、documentSessionはNancyモジュール内で解決されることに言及する必要がありますが、根本的に間違ったことをしている可能性があります。

誰かが修正やいくつかの提案を提供できますか?

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

c# - TinyIoCに名前付き登録を挿入する

次のコンストラクター署名でIRofl呼び出される実装を持つインターフェースがあります。DefaultRofl

ICanHasCheezburgerにはいくつかの実装があり、そのうちの1つをIoCコンテナで解決する必要があり、名前付き登録がこれに対する正しい方法だと思いました。

事前に作成されたインスタンスが2つあり、1つをデフォルトの登録にし、もう1つを次の名前にしたいとします。

DefaultRoflここで、「x2」登録を解決する必要があることを指定する必要があります。これが行き詰まっています。Autofacがこれを実行できることは知っていますが、TinyIoCで方法を見つけることができません。

私はこれを行う方法が

しかし、結局のところ(そして私はその理由をある程度理解しています)、ICanHasCheezburgerコンストラクターパラメーターは単なるダミーであり、実際には評価されません。これは、名前も無視され、インターフェイスのデフォルトの登録が解決されることを意味しますが、これはcheez1、ここでは使用したくないものです。

実際、ジェフ・アトウッドのラバーダック問題解決のもう1つのケースでは、私はそれを理解しました。

トリックを行います。ただし、コンストラクター引数がさらにある場合は、すべてのcontainer.Resolve()呼び出しを明示的に指定する必要があります。スティーブン?;-)

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

inversion-of-control - NancyプロジェクトでTinyIocの現在のコンテナを取得する

私は小さなナンシーのウェブプロジェクトを構築しています。

私のクラスの1つ(ナンシーモジュールではない)のメソッドで、基本的に次のことを行います。

.Currentただし、 (非公開メンバー、_RegisteredTypes)には、TinyIoC.TinyIoCContainer.TypeRegistrationの
1つの登録しかありませ ん。

当然、上記のコードでは、次のようになります。

タイプを解決できません:My.Namespace.IMyThing

だから、私は私のブートストラッパーに同じコンテナを登録していないと思いますか?

それを取得する方法はありますか?

編集

私がやろうとしていることをもう少し具体化するには:

基本的に、私のURL構造は次のようになります。

/ {myType} / {myMethod}

つまり、/ customer / ShowAllWithTheNameAlexに移動すると、Customerサービスが読み込まれ、showAllWithTheNameAlexメソッドが実行されます。

私がこれを行う方法は次のとおりです。

次に、サービスを返すGetServiceメソッドを持つ抽象基本クラスがあります。
ここで、TinyIoC.TinyIoCContainer.Current.Resolve()を使用しようとしています。
この場合、TinyIoC.TinyIoCContainer.Current.Resolve( "typeName");になります。

これが私のサービスの実装です。

最後に、次のようなナンシーモジュールがあります。