main
1using Castle.DynamicProxy;
2
3namespace solidware.financials.service.orm
4{
5 public class UnitOfWorkInterceptor : IInterceptor
6 {
7 readonly UnitOfWorkFactory unit_of_work_factory;
8
9 public UnitOfWorkInterceptor(UnitOfWorkFactory unit_of_work_factory)
10 {
11 this.unit_of_work_factory = unit_of_work_factory;
12 }
13
14 public void Intercept(IInvocation invocation)
15 {
16 using (var unit_of_work = unit_of_work_factory.create())
17 {
18 invocation.Proceed();
19 unit_of_work.commit();
20 }
21 }
22 }
23}