![]() |
1
1
听起来像是面向方面的编程。退房 PostSharp . 下面是一个从他们网站上追踪的例子:
我使用它来进行日志/跟踪、缓存和性能监视。 |
![]() |
2
0
一种方法就是使用基本的策略模式。使用Strategy,您基本上是将功能推送到一个单独的类中,该类将由您的类调用,而不是直接在原始类中实现逻辑。策略类可以通过基于接口的属性或构造函数参数(或两者)来设置,从而包含在原始类中。这样,用户可以选择将不同类型的功能注入到原始类定义的某些处理流中。 |
![]() |
3
0
如果这是.NET特定的(您提到了ASP.NET),我强烈建议您查看System.Transactions命名空间,并阅读有关在事务中创建和注册资源管理器的内容。 使用TransactionScope,您可以在上下文中创建事务,在该上下文中执行的资源管理器可以检测到事务的存在并在其中注册(这将与TransactionStart事件同义)。注册后,每个资源管理器都可以选择提交其更改,或者退出并启动事务的回滚。 NET 2.0引入的Systen.Transactions命名空间提供了一些非常强大的工具来创建事务和管理事务资源。您可以选择两个轻量级事务,或者如果您的需求更复杂,则可以选择由MSDTC服务管理的完全分布式事务。事务可以是单阶段提交,也可以是两阶段提交,在事务失败的情况下提供了大量的灵活性和稳定性。 |