問題タブ [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.
c# - TinyIoCによるコンストラクターインジェクション
依存性注入のためにNinjectからTinyIoCに変更したばかりで、コンストラクター注入に問題があります。
私はそれをこのスニペットまで単純化することができました:
これにより、TinyIoCResolutionExceptionが次のようにスローされます。
その例外の中には、一連の内部例外があります。
コンストラクターインジェクションの使用方法に何か問題がありますか?私は私が呼ぶことができることに気づきます
それは確かに機能しますが、結果はBarのグローバルインスタンスであり、私が求めているものではありません。
何か案は?
nancy - NancyFXで使用するためにTinyIOC内に依存関係を登録する
NancyFX内で使用するためにTinyIoc内に追加の依存関係を登録することに関して、もう1つの初心者の質問があります。
アプリケーションの実行時に次の例外が発生し続けます...
現在、依存関係を誤って登録していますが、正しい方法がわからないようです。以下は、カスタムブートストラッパー内のコードです。また、現在のコンテキストを取得して渡す方法がわからないため、現在base.ConfigureRequestContainerメソッドを呼び出していないことにも注意してください。
どんな助けでも本当にありがたいです...どうやら私の無知には限界がありません:)
c# - TinyIoC - インターフェイスの複数の実装
IoC と Dependency Injection について学び始めたばかりです。私は MonoTouch プロジェクトを計画しており、TinyIoC を使用したいと考えていましたが、最初にテストしたかったのです。ダミーのクレジット カード処理コンソール アプリを作成していますが、インターフェイスの実装が複数あるため、TinyIoC の構成方法に問題があります。これは私のテストアプリです。
インターフェース:
インターフェイスの 2 つの実装:
VisaPaymentProcessor
AmexPaymentProcessor
シンプルなもの。これで、コンストラクターのパラメーターとしてインターフェイスを受け入れるクラスができました....
クレジット カード プロセッサ
私のコンソールアプリは次のようになります....
Resolve
そのため、コンストラクターに渡すインターフェイスの実装をどのように伝えるかを理解しようとしています。このコードを実行すると、常にVisaPaymentProcessor
実装が使用されます。
では、TinyIoC が(デフォルトのように見える)AmexPaymentProcessor
ではなくコンストラクターに実装を渡すようにするにはどうすればよいでしょうか?VisaPaymentProcessor
c# - TinyIoc - すべてのインターフェイス登録を AsPerRequestSingleton に設定するにはどうすればよいですか?
上記は、私の TinyIoc 構成を含む既存のアプリケーションのスタートアップです。すべてのインターフェース登録を取り、それらをすべて PerRequestSingletons に変換する方法はありますか? リポジトリが多すぎるため、それらを「1つずつ」実行することはできません。また、NHibernateのセットアップ方法では機能しないため、それらをシングルトンのままにしておくこともできません。
.net - TinyIoC: 1 つのインスタンスに複数のインターフェイスを登録する
Autofac を使用すると、.AsImplementedInterfaces() またはチェーン化された .As<>() 呼び出しと .SingleInstance() を使用して、複数のインターフェイスを同じインスタンスに非常に簡単に解決できます。これは TinyIoC でも実行できますか? 同じインターフェースの複数の実装を登録する方法しか見つけられませんでしたが、登録などを連鎖させる方法はありません。
私の理解では、これは IoC コンテナーにとって非常に重要な機能ですよね。
xamarin.android - TinyIoC とリリース ビルド
私は最初のリリース ビルドを行っていますが、TinyIoC に問題があり、TinyIoC を介して使用されるインターフェイスを解決しています。
私たちが持っているアーキテクチャは次のとおりです。
Universal.Mobile.Droid.application - メイン アプリケーション
Universal.Mobile.Droid.Interfaces - IUniversalMobileDroidDAO の定義が含まれています
Universal.Mobile.Droid.DAO.UltraliteDAO - IUniversalMobileDroidDAO の実装を含む
リリース ビルドを実行し、デバイスで展開/実行すると、次のエラーが表示されます。
これを解決するには、ビルド/リンカー/マニフェストを微調整する必要がありますか?
よろしく、
ジェームズ
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とすべて。デザイナーの読み込みエラーを次のいずれかで停止したいと思います (優先順):
- デザイナーで適切に動作するようにコードを修正する方法を理解する
- デザイナーのモック データを使用して既存の制御データをスタブ化する
- このデザイナー機能を無効にする
ravendb - NancyFXで使用されるサービスへのコンストラクターの依存関係を解決する
私は次のブートストラップを持っています
Nancyアプリが次のコンストラクターを使用してBlogServiceをインスタンス化しようとしたとき
アプリケーションが爆発し、ドキュメントセッションを解決できないことを示します。また、テストメソッド内で次のことを試しました(コンストラクターインジェクションを削除しました)。
これも爆発し、documentSessionを解決できないことを指摘します。
NancyFXまたはTinyIoCを使用したのはこれが初めてなので、documentSessionはNancyモジュール内で解決されることに言及する必要がありますが、根本的に間違ったことをしている可能性があります。
誰かが修正やいくつかの提案を提供できますか?
c# - TinyIoCに名前付き登録を挿入する
次のコンストラクター署名でIRofl
呼び出される実装を持つインターフェースがあります。DefaultRofl
ICanHasCheezburger
にはいくつかの実装があり、そのうちの1つをIoCコンテナで解決する必要があり、名前付き登録がこれに対する正しい方法だと思いました。
事前に作成されたインスタンスが2つあり、1つをデフォルトの登録にし、もう1つを次の名前にしたいとします。
DefaultRofl
ここで、「x2」登録を解決する必要があることを指定する必要があります。これが行き詰まっています。Autofacがこれを実行できることは知っていますが、TinyIoCで方法を見つけることができません。
私はこれを行う方法が
しかし、結局のところ(そして私はその理由をある程度理解しています)、ICanHasCheezburger
コンストラクターパラメーターは単なるダミーであり、実際には評価されません。これは、名前も無視され、インターフェイスのデフォルトの登録が解決されることを意味しますが、これはcheez1
、ここでは使用したくないものです。
実際、ジェフ・アトウッドのラバーダック問題解決のもう1つのケースでは、私はそれを理解しました。
トリックを行います。ただし、コンストラクター引数がさらにある場合は、すべてのcontainer.Resolve()呼び出しを明示的に指定する必要があります。スティーブン?;-)
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");になります。
これが私のサービスの実装です。
最後に、次のようなナンシーモジュールがあります。