問題タブ [windsor-facilities]
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.
castle-windsor - WcfFacility がありません
Castle.Facility.WcfIntegration にあるはずの WcfFacility を探しています。
状況は変わりましたか?それはどこにある?私は最新の城 (バージョン 3.1) を持っています。
質問はこのリンクに関連しています:
inversion-of-control - コードを使用して Castle Windsor v3+ に施設構成を追加する方法は?
Castle Windsor v3+ では、このIWindsorContainer.AddFacility<T>(string idlnConfiguration)
メソッドは廃止されました。古いバージョンでは、このメソッドを使用して、呼び出しIConfigurationStore.AddFacilityConfiguration(string key, IConfiguration config)
で「idlnConfiguration」と「key」が同じ場所を呼び出すことにより、動的構成を追加できました。
例えば:
Windsor 3 でこれを行うための推奨される方法は何ですか? ObsoleteAttribute のメッセージは、container.AddFacility<T>()
代わりに使用することを示していますが、方法がわかりません。
c# - Castle.Windsor:3.1でのファクトリーとインターセプターの変更?
次のコードは、Castle.Windsor 2.5.3でそのまま通過しますが、3.1.0にアップグレードすると失敗します。
例外はInvalidProxyConstructorArgumentsExceptionであり、「クラスのプロキシをインスタンス化できません:テスト。パラメーターのないコンストラクターが見つかりませんでした。」と表示されます。
私の実際のコードでは、テストはファクトリメソッドを使用して構築され、リポジトリに挿入されているMongoDatabaseです。
私の実際のコードでは、AbstractFacilityの継承者を使用してインターセプターを登録しています。このようにして、各コンポーネントのインターセプターを登録する必要はありません。インターセプターの使用の両方の形式は、後の解決で同じように機能/失敗するようです(2.5.3 / 3.1.0)。参考までに、施設の短縮版を次に示します。
Castle.Windsorのソースコードを調べたところ、スローするコードは、指定されたクラスの周りにプロキシをラップすることを期待しているため、パラメーターのないコンストラクターを探しています。ただし、2.5.3では、プロキシ生成コードが実行されることはなく、コンテナは(私の考えでは)非プロキシバージョンのTest/MongoDatabaseに解決されると思います。
だから私が推測する2つの質問:1)何が変わったのですか?2)ファクトリメソッドによって解決されたオブジェクトのプロキシを生成せずにインターセプター登録を保持するにはどうすればよいですか?または、コンポーネントのファクトリメソッドを使用してプロキシを生成するにはどうすればよいでしょうか...
castle-windsor - キャッスルウィンザー施設がナンシーウィンザーブートストラッパーとうまく機能していない
ナンシー0.7から0.12にアップグレードしようとすると奇妙な問題が発生します。以前は、ブートストラッパー内のすべてのサービスのログを記録する機能を登録していました。
LoggingFacilityは次のようになります。
残念ながら、0.12 / Castle 3.1にアップグレードしてから、次の行でWindsorNancyBootstrapper.RegisterTypes
問題が発生しています。
基本的に、CastleはFuncの周りに動的プロキシを作成しようとします。この登録が私の施設がサブスクライブしたイベントをトリガーした場合、これは問題ありませんが、そうではありません。それでも、インターセプターはとにかく登録されているようです。
MulticastDelgate(Func <>のILの親)が封印されているため、プロキシを作成しようとすると明らかに失敗します。TypeLoadExceptionアセンブリからタイプ'Castle.Proxies.Func`1Proxy'を読み込めませんでした'DynamicProxyGenAssembly2、Version = 0.0.0.0、Culture = neutral 、PublicKeyToken =a621a9e7e5c32e69'親タイプがシールされているため。
ここで何をするのかわかりませんが、FacilitiesとNancy 0.12の経験はありますか?
castle-windsor - TypedFactoryFacility での Castle.MicroKernel.ComponentNotFoundException
TypedFactoryFacility の使用時に ITcpServer の解決に問題があります。Windsor は、インターフェイス用に工場から返される適切なコンポーネントを見つけられないようです。私の場合に固有のものは、インターフェイス ITcpServer が非ジェネリックであり、それを実装するクラスが両方ともジェネリックであることです。
実行時に次のコードがスローされます。
未処理の例外: Castle.MicroKernel.ComponentNotFoundException: サービス ConsoleApplication1.StandardTcpServer`1 をサポートするためのコンポーネントが Castle.Facilities の Castle.MicroKernel.DefaultKernel.Castle.MicroKernel.IKernelInternal.Resolve (タイプ サービス、IDictionary 引数、IReleasePolicy ポリシー) で見つかりませんでした.TypedFactory.TypedFactoryComponentResolver.Resolve(IKernelInternal カーネル、IReleasePolicy スコープ) Castle.Facility.TypedFactory.Internal.TypedFactoryInterceptor.Resolve(IInvocation 呼び出し) で Castle.Facility.TypedFactory.Internal.TypedFactoryInterceptor.Intercept(IInvocation 呼び出し) で Castle.DynamicProxy。 AbstractInvocation.Proceed()
at Castle.Proxies.ITcpServerFactoryProxy.Create[T](String serverType, T something)
コード:
問題を解決するための助けをいただければ幸いです。
c# - ファクトリを使用する場合、WindsorContainer は解決ツリーを介してオブジェクトを渡すことができますか
次のような問題があります。
すべてのビューモデル (..VM) は一時的である必要があります。そして、childVM1 が、ファクトリに与えられたものと同じ otherVM のインスタンスを取得する必要があります。
BaseVm を ScopedLifestyle として登録しようとしましたが、ファクトリを手動で実装し、スコープ内で解決するときにインスタンスを渡しました。それでも、解決時に otherVM の新しいインスタンスを取得します。
ここで明らかな何かが欠けていますか?
ケティル。
castle-windsor - キャッスル ウィンザー、いくつかのコンテキスト パラメータに応じてサービスの実装を選択
Castle Windsor 3.2 では、コンテキスト パラメータに応じて、その場でサービスの実装を解決する必要があります。これが私がやりたいことの基本的な例です:
私はサービスIFooを持っています
2 つの異なるクラス Foo1 と Foo2 によって実装されます
数値をパラメーターとして城のウィンザー解決メソッドを呼び出し、数値に応じて Foo1 または Foo2 オブジェクトを取得したい:
考えられる解決策をいくつか試しましたが、Castle Windsor のドキュメントと例が不足していて、ほとんどの例が最新ではなく、廃止された API を使用しているため、本当に混乱しています。
したがって、次の概念を使用した例を見てきましたが、どれも私の要件にあまり合っていないようです。
- HandlerSelector
- 型式 工場設備
- UsingFactoryMethod
logging - Castle Windsor Factory を使用して複数の名前付きロガーを作成するにはどうすればよいですか?
この男はほとんど同じ質問をしました。
現在、MVC アプリケーションでキャッスル ロギング機能を使用しており、現在、global.asax に単一の名前付きロガーをロードしています。これにより、同じログ レコードを複数のファイルに出力することなく、同じレベルの複数のログ ファイルを簡単に分離できません。 . LoggerToMatch は、フィルタリングのために私が求めているものです。現在、単一の名前付きロガーで使用しているカスタム log4net レンダーもあり、別の名前付きロガーが別のカスタム レンダーを使用する必要があります。
ここでのKrzysztofの答えは私が求めているものだと思いますが、これらのパラメーターがk、cであることがわかりません。
このようなlog4net構成ファイルがある場合、名前付きロガーを両方ともWindsorに登録するにはどうすればよいですか? これまで、私は施設を登録する際に 1 つの名前付きロガーについて Windsor に伝えてきました。
wcf - Windsor Castle 3.0 は IContributeComponentModelConstruction を使用してライフスタイルを WcfPerOperation に設定します
Windsor 2.1 では、コードが wcf コンテキストで実行されるときに、すべてのサービスのライフスタイルを PerWcfOperation に変更する次のコードがあります。
ここで、CustomLifestyleLevelingContributeComponentModelConstruction は次のとおりです。
私の問題は、クラスPerWcfOperationLifestyle が Windsor 3.0 から削除されたことです。Windsor 3.x で同じ目標を達成する方法を教えてください。