依赖注入和PostSharp[英] Dependency Injection and PostSharp

本文是小编为大家收集整理的关于依赖注入和PostSharp的处理方法,想解了依赖注入和PostSharp的问题怎么解决?依赖注入和PostSharp问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

大家好,

我正在使用 PostSharp 在我的应用程序中实现日志记录和安全方面.PostSharp 使用属性来装饰带有方面的方法,然后在编译时对其进行修改.

有谁知道我可以在这些方面使用依赖注入的方法?我目前正在使用静态服务定位器来解决容器的依赖关系,但它并没有我想要的那样干净和解耦.

有什么想法吗?

推荐答案

在我最近读到的一本关于依赖注入的书中(DependencyMark Seemann 在 .NET 中的注入 [^]) 那里是您可能感兴趣的一章(第 9 章).这一章是关于拦截的.讨论了动态拦截,并与使用装饰器模式和使用 PostSharp 的属性进行了比较.

动态拦截能够动态地包装装饰器的方法,例如有关日志记录或异常处理的代码.一个装饰器可以使用多个拦截器.我对它的研究还不够多,无法知道它是否足以满足应用程序的所有安全方面的需求.

可以在此处找到使用 Castle Windsor 的示例:http://blog.ploeh.dk/2010/09/20/InstrumentationWithDecoratorsAndInterceptors.aspx[^]

并非所有 DI 容器都支持动态拦截.Castle Windsor、Spring
.net 和 Unity(可能还有其他)支持它.书中有所有树 DI 容器的示例以及拦截的使用.

本文地址:https://www.itbaoku.cn/post/1356165.html