依存性注入に SimpleInjector を使用していますが、単一の呼び出しチェーン内で同じデコレーターを複数回登録でき、要求された構成に従ってデコレーターが適用されることを発見しました。たとえば、RepositoryTraceDecorator をリポジトリ クラスの最初と最後のデコレータとして挿入できます。
container.RegisterDecorator(typeof(IRepository<>),
typeof(RepositoryTraceDecorator<>));
container.RegisterDecorator(typeof(IRepository<>),
typeof(RepositoryDetectChangesDecorator<>));
container.RegisterDecorator(typeof(IRepository<>),
typeof(CrossRepositoryTransactionScopeDecorator<>));
container.RegisterDecorator(typeof(IRepository<>),
typeof(RepositoryTraceDecorator<>));
container.RegisterDecorator(typeof(IRepository<>),
typeof(RepositoryExceptionDecorator<>));
これは仕様によるものなので、この機能に依存できますか?