gpt4 book ai didi

c# - 调用链中同一个装饰器的多次注册

转载 作者:太空宇宙 更新时间:2023-11-03 11:08:23 26 4
gpt4 key购买 nike

我正在使用 SimpleInjector 进行依赖项注入(inject),我刚刚发现我可以在单个调用链中多次注册同一个装饰器,并且装饰器将根据请求的配置应用。例如,我可以插入我的 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<>));

这是设计使然,因此我可以依赖此功能吗?

最佳答案

Is this by design and therefore can I depend on this feature?

正如您刚刚展示的那样,在链中多次应用装饰器可能很有用,在未来的版本中更改此行为将是一项重大更改。我可以向您保证,您可以放心地依赖它,并且这种行为不会改变。

future 可能会发生的是新的Diagnostics feature得到改进以检测到这一点,并警告您有多个相同的装饰器。

关于c# - 调用链中同一个装饰器的多次注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14952581/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com