再话 AOP,从简化缓存操作说起 本文探讨了面向切面编程(AOP)在简化缓存操作中的应用。博主首先介绍了AOP的概念及其相关技术,然后通过一个缓存操作的例子,指出了传统缓存代码存在的问题,即读/写缓存与业务代码的耦合。为了解决这一问题,博主提出了一个基于 `DispatchProxy` 的 AOP 方案,通过创建一个 `CacheableAttribute` 特性,并使用动态代理,实现了在方法调用时自动对返回值进行缓存的功能。该方案使得业务代码中使用缓存变得更加简洁,无需关心缓存的具体实现细节。最后,博主提供了一个示例代码,展示了如何通过 AOP 实现缓存,并提到了其他第三方库如 `Unity`、`Castle`、`AspectCore` 和 `PostSharp`在实现 AOP 时的相似之处。此外,博主还提到了 `EasyCaching` 框架,并鼓励读者在有类似需求时使用该框架,同时也欢迎读者提出更好的想法或思路。
通过动态 Controller 实现从 WCF 到 Web API 的迁移 这篇文章介绍了如何通过 Castle 的动态代理来实现将 WCF 接口迁移到 Web API 上的过程。通过组合类和接口,借助 Castle 的 Dynamic Proxy 实现动态生成 Controller,替换默认组件以实现 WCF 接口通过 Web API 访问。文章还涵盖了 ASP.NET MVC 的原理、自定义组件的实现、容器注册替换、HTTP 动词支持和接口返回值优化等内容。最后提到了在 ASP.NET Core 中的 POCOController 特性,使得将任意类作为 Controller 更加简单。文章内容详实,为实现 WCF 到 Web API 的迁移提供了指导和思路。