問題タブ [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.
unit-testing - params 配列が使用されている場合に一致しないモック オブジェクトの関数呼び出しの検証
次のテストがあります。
ご覧のとおりInit(IKernel, IConfiguration)
、保護されたInit()
メソッドを呼び出すファシリティーのメソッドを呼び出して、カーネルの実際の動作を模倣しています。
保護された Init() は次のようになります。
検証がパスすることを期待していましたが、パスしません。Kernel.Register がIt.IsAny<LoggingInterceptor>()
テスト パスでまったく呼び出されたことを確認した場合。
ここで一致しないものは何ですか? このテストに合格する方法はありますか?
nhibernate - Castle Windsor と NHibernate 機能を使用して、正しい ISessionFactory を IRepository に注入する
1 つのアプリケーションがデータを取得する 3 つの SQL Server データベースがあります。NHibernate を使用して、さまざまなデータベースからデータを取得しています。各データベースが独自のアセンブリに独自のリポジトリとクラス マッピングを持つようにセットアップしました。Castle.config ファイルでは、Castle NHibernate 機能を使用してデータベース接続をセットアップしています。
私のすべてのリポジトリには、パラメーターとして ISessionFactory を取るコンストラクターがあります。
さまざまなリポジトリを定義したいインストーラー クラスがあります。
1 つのデータベースを使用すると問題なく動作します。2 番目のデータベースをミックスに追加すると、同じ ISessionFactory がすべてのリポジトリに挿入されます。私の質問は、これを処理する最良の方法は何ですか? どの ISessionFactory をどの Repository<> に注入する必要があるかを手動で指定できますが、これに関するドキュメントが見つからないようです。最善の方法は、次のようなことを言うことができる場合です。アセンブリ DAL.DatabaseOne のすべてのクラス マッピングに対して、databaseone.factory に対応する ISessionFactory を常に注入します。また、アセンブリ DAL.DatabaseTwo のすべてのクラス マッピングに対して、databasetwo.factory に対応する ISessionFactory を常に注入します。
考えや提案はありますか?
logging - CastleWindsorコンソールにログを記録する際のログレベルの設定
Castle Windsorを初めて使用し、ConsoleLoggerの初期ログレベルを設定するのに苦労しています。ドキュメントにはlog4netのヒントがいくつか記載されていますが、コンソールへのロギングについては説明されていません。
私のコードは次のようになります。
ファシリティのデフォルトのログレベルをたとえばに設定する方法のヒントはありますLoggerLevel.Warn
か?
乾杯
castle-windsor - Castle Windsor: インターセプターを使用したコンポーネント作成イベント
インスタンスを自動構成するキャッスルウィンザー用の機能を作成しました。インターセプターを使用するタイプを除いて、うまく機能します! その場合、ComponentCreated イベントが発生せず、インスタンスを構成できません。プロキシされたクラスの作成をインターセプトするにはどうすればよいですか? これは私の施設コードです:
解決
ComponentCreated イベント パラメーター「s」は ComponentModel であるため、実装プロパティにプロキシされていない型が保持されます。私の修正コードは次のようになります。
castle-windsor - TypedFactory Windsor の実装をどのように制御できますか?
私の同僚は、私たちのプロジェクトで Windsor TypedFactoryFacility をセットアップしました。
私は Windsor を初めて使用し、ファクトリとして登録する IServiceFactory インターフェイスのメソッドを実装する方法を理解していません。型パラメーター T を受け取り、T を返す Create メソッドを見たとき、おそらく内部でコンテナーの Resolve メソッドを呼び出しているのではないかと考えました。
Type をパラメーターとして取り、オブジェクトを返す Create のオーバーロードが必要です。コンテナーの Resolve メソッドには、次の両方のフレーバーがあるため:
Create のオーバーロードを追加するとうまくいくと思いました。代わりに、渡された Type I ではなく System.Object を解決しようとしているようです。
Windsor で Create メソッドを希望どおりに実装する方法はありますか? リフレクターでちょっと調べてみましたが、よくわかりません。
登録は次のとおりです。
およびインターフェース自体:
locking - モデルをロックしてウィンザーで使用されるLog4net
Windsor ロギング機能と fileappender から log4net を使用する場合、ロック モデルを使用する必要がありますか? または、この問題はウィンザー自体によって解決されますか? ありがとう。
castle-windsor - カスタム Log4Net 構成の Windsor Logging Facility
私は、このページをたどって、私のプロジェクトで動作しているウィンザー ロギング機能を持っています。
ただし、log4net.config を使用するのではなく、コード ベースのアペンダー セットアップを使用することに関心があります。詳しくは、次の記事を参照してください。
これはロギング機能で可能ですか? これを実行する最良の方法は何ですか?
wcf - CastleWindsorでwcfサービスを登録します
Castleを使用していないときに正常に機能する非常にシンプルなサービスがあります(他のコードが正しいことを示しています)。svcファイルを次のように変更しました。
次のようにxmlを使用してサービスを登録します。
しかし、次のエラーが発生します。
なぜ登録されていないのか分かりますか??
- - アップデート - -
私はウィンザー構成でこれを持っています:
また、ReportingWebServiceは別のアセンブリで実装されています。
c# - 型付きファクトリは、コンストラクタにマップできない引数を黙って破棄しますか?
質問
コンストラクターにマップできない作成関数で指定された引数がある場合、型付きファクトリは例外をスローする必要がありますか? 例えば
バグの一部は、文字列を受け入れるコンストラクターが Foo で見つからない場合に、例外をスローする代わりに、型指定されたファクトリがデフォルトのコンストラクターをサイレントに呼び出すことによって引き起こされていることがわかりました。Foo のコンストラクターは変更されましたが、型付きファクトリでコンストラクターを作成する方法は更新されていませんでした。
部分解決?
少し実験して、潜在的な解決策を見つけました。
これは適切な回避策でしょうか?
nuget - NuGet から Castle.Transactions をインストールしても DLL が生成されない
数日前Castle.Facilities.AutoTx
、に依存する NuGet からをインストールしましたCastle.Transactions
。アプリケーションを実行するFileNotFoundException
と、Castle.Transactions フォルダーから DLL をロードしようとしました。
これらのパッケージは両方とも最近(6 月 27 日)更新されており、更新がこの問題を引き起こしたようです。同じ問題を抱えているという他の誰かからの発表に対する返信があり、彼らは問題を修正するためにプルリクエストを作成しましたが、見た目ではまだ受け入れられていません。
このスタック オーバーフローの質問のコマンドを使用して、Nuget から以前のバージョンの Castle.Facilities.AutoTx をインストールしようとしましたが、Rx-Core パッケージの名前が変更されたため、依存関係ができなかったという点で、ここで説明されている問題に遭遇しました。満足しません。
3.1 の発表を投稿し、Castle.Transactions パッケージの作成者でもある Henrik Feldt に電子メールを送信しましたが、応答がありません。私のアプリケーションで AutoTx 機能を動作させたいのですが、それを実現する方法を教えてもらえますか?