IoCでWindsorを使用するアプリケーションが正常に動作しています。私は、メソッド呼び出し、パラメータ、およびウィンザーによってインスタンスのコンポーネントに対して行われたすべてのコールの実行時間を記録したいので、私は含まれていIInterceptorを実装LoggingInterceptor、実装:以前にうまく働いた操作が投げている今Windsorで問題が発生し、インターセプタを追加した後にGenericizedメソッドが呼び出される
Stopwatch sw = new System.Diagnostics.Stopwatch();
sw.Start();
invocation.Proceed(); // EXCEPTION IS THROWN HERE
sw.Stop();
Logger.Debug(.....
を次のメッセージを含む検証例外:
メソッドリポジトリ。リポジトリベース。GetAll:タイプ引数 'ET'は、タイプパラメータ 'ET'の制約に違反します。
メソッドのシグネチャは、次のとおり
public IList<ET> GetAll<ET>() where ET : EntityBase2, IEntity2
(EntityBase2とIEntity2はLLBLGenProからである)
次のようにメソッドの呼び出し元である:
public IList<ServerEntity> GetServers()
{
return GetRepository<IServerRepository>().GetAll<ServerEntity>();
}
(ここGetRepository <>()はServiceLocatorのラッパーです)
城の構成からインターセプターをコメントアウトすると、すべて正常に機能します。
なぜこれが起こっているのですか?修正プログラムがあるので、私はログインターセプタを使用できますか?
おかげ
この問題を解決する完全なテストケースを投稿してください。 –
私はWindsor Castle 2.5を実行していますが、私は全く同じ問題を抱えています。 –