我正在使用 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<>));
这是设计使然,因此我可以依赖此功能吗?