問題タブ [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# - Nancy および/または TinyIoC は AsSingleton() を尊重しません
セットアップ: 私は、ほとんどすぐに使える Nancy + TinyIoC セットアップで、正常に動作する Web サービスを実行しています。さまざまな (AsSingleton) サービス クラスに依存します。ただし、これらはシングルトンとして注入されず、毎回新しいインスタンスが作成されます。
Nancy ブートストラップを次のようにセットアップしました。
.net - Nancy + TinyIoCを使用して、QuartzJobFactoryを介して依存性を注入します
そのため、私はNancy+TinyIoCを使用して小さなWebサービスを実行しています。これは機能します。次に、同じ依存関係のいくつかを必要とするQuartzジョブを作成する必要があります。理想的には、 Quartzチュートリアルで説明されているように、NancyのTinyIoCを使用してこれらを注入します。
Windsorを使用してこの例を見つけました。この例では、IoCコンテナに直接アクセスしますが、ナンシーでは、ここで尋ねられた同様の質問によると、これは大雑把で不要です。
私の質問は、これを行う正しい方法は何ですか?JobFactoryのコードは次のようになります。
ただし、これは正しく挿入されたインスタンスを持つジョブを返すのではなく、依存関係の新しいインスタンスを持つジョブを返します。(これはシングルトンであると想定されているため、TinyIoCContainer.Currentによって返されるTinyIoCContainerは、ナンシーが使用するコンテナーと同じではないと私は信じています)。
更新
NancyBootstrapperを介してIoCコンテナを設定しています。
c# - NancyFXのDataContextを適切に登録する
APIプロジェクトにNancyFXとHighway.Data+EntityFrameworkを使用しています。私のモジュールは、DataContextに依存しているリポジトリに依存しています。DataContextを登録し、web.configからの接続文字列を含める必要があるので、次のようにします。
これにより、web.config接続文字列を使用するように登録が設定されますが、自動登録によってすでに登録されているIMappingConfigurationも使用されます。
しかし、Webリクエストごとではなく、シングルトンとして登録しているようです。これは、データがWebリクエスト間でキャッシュされることを意味しますが、これは私が望んでいることではありません。
上記の登録に.AsMultiInstance()を追加しようとしましたが、起動時にエラーが発生します:「TinyIoC.TinyIoCContainer+DelegateFactoryの現在の登録をマルチインスタンスに変換できません」
誰かがこれを正しく登録する方法を提案できますか?
.net - TinyIOC コンストラクター インジェクション
Tiny IOC では、解決されているタイプをどのように取得しますか。たとえば、次のようにロギングします。
ILogger を構築するためにファクトリを追加しようとしていますが、インジェクション情報がありません。
windows-7 - ナンシー/TinyIoC「私のマシンで動作する」問題
だから私は過去半年かそこらで開発してきたこのウェブアプリを持っています。最近、NancyFxがnugetで0.16にアップグレードされ、アップグレードに移行したことを発見しました(0.12から)。私のマシンではうまくいったか、むしろうまくいったように見えましたが、CIマシンでは見事にうまくいきませんでした。次のStackTraceを取得します。
これで、TinyIoCが作成を処理するために必要な多くのパラメーターを受け取る特定のモジュールまで問題を追跡しました。そのモジュールを無効にすると、ナンシーは正常に起動しますが、もちろん必要な機能はありません。私のマシンでは、問題なく動作します。2つの違いは、CIがWindows Server 2008 R2EnterpriseSP1を実行しているときにマシンがWindows7を実行していることだけです。他の誰かがこのようなことが起こった経験がありますか?それは私を怒らせています。
c# - TinyIOC を使用してジェネリック インターフェイスを登録する方法
汎用インターフェースと汎用実装があるとします。すべての使用状況を登録するにはどうすればよいですか?
具体的には、次のものがあります(簡単にするために縮小しています):
次のように、すべての実装を 1 つずつ登録する必要がありますか。
それとももっと短い方法がありますか?
c# - タイプの TinyIOC および複数のユーザー指定ファクトリー
現在、TinyIOC を使用してカスタムReactiveUI IMutableDependencyResolverを接続しようとしています。また、ReactiveUI が複数のインターフェイス実装をユーザー指定のファクトリに登録したいという事実に苦労しています。どの TinyIOC がサポートしていないようです。
私の実装は、レジスタが再度呼び出されるたびに以前の登録を上書きしているようです。助言がありますか?
dependency-injection - 同じインスタンスを返す TinyIoC
私は依存性注入パターンに不慣れで、container.Resolve からクラスの新しいインスタンスを取得する際に問題が発生しています。新しいインスタンスではなく、同じインスタンスを返し続けるだけです。コードについて
そして、派生クラスは現時点ではダミーですが、ここにあります
これは外部ライブラリであることを意図しているため、すべてにアクセスするための直面クラスがあります
ただし、Hadrian クラスの GetNewZone() メソッドが同じインスタンスを返し続けるため、テストは失敗しています。
テストコード
おそらくパターンに欠けている単純なものだと思いますが、わかりません。助けていただければ幸いです。