温馨提示:代码在线浏览功能只能做为源码浏览参考,不能展示项目的全部,如果想更进一步了解该代码请下载:逐迹内容管理系统AspxNuke v2.0源码
当前文件路径:AspxNuke/Framework/AOP/ProxyInterceptor.cs

1using System; 2
using System.Globalization; 3
using System.Configuration; 4
using Castle.DynamicProxy; 5
using AspxNuke.Library.Globalization; 6
using System.Transactions; 7
8
namespace AspxNuke.AOP 9
{ 10
/// <summary> 11
/// 拦截器 12
/// </summary> 13
public class ProxyInterceptor : StandardInterceptor 14
{ 15
属性 64
65
/// <summary> 66
/// 前置拦截 67
/// </summary> 68
/// <param name="invocation">IInvocation</param> 69
/// <param name="args">参数</param> 70
protected override void PreProceed(IInvocation invocation, params object[] args) 71
{ 72
73
////日志判断 74
//if (IsOperateLog) 75
//{ 76
// AspxNuke.Log.IDAL.ILogging log = new AspxNuke.Log.NHibernateDAL.Logging(); 77
// log.WriteEntry(string.Format("{0} {1}.{2}", "PreProceed", invocation.Method.DeclaringType, invocation.Method.Name)); 78
//} 79
80
////权限判断类 81
//if (IsPermission) 82
//{ 83
// AspxNuke.UUMS.IDAL.IPermissionByMethods permission = new AspxNuke.UUMS.NHibernateDAL.PermissionByMethods(); 84
// string className = invocation.Method.DeclaringType.ToString(); 85
// string methodName = invocation.Method.Name; 86
// if (permission.CheckClassMethod(className, methodName, GlobalHelper.RoleId)) 87
// { 88
// base.PreProceed(invocation, args); 89
// } 90
// else 91
// { 92
// throw new Exception("您没有相应权限!"); 93
// } 94
//} 95
//else 96
//{ 97
// base.PreProceed(invocation, args); 98
//} 99
} 100
101
/// <summary> 102
/// 后置拦截 103
/// </summary> 104
/// <param name="invocation">IInvocation</param> 105
/// <param name="returnValue">方法</param> 106
/// <param name="arguments">参数</param> 107
protected override void PostProceed(IInvocation invocation, ref object returnValue, params object[] arguments) 108
{ 109
110
////日志判断 111
//if (IsOperateLog) 112
//{ 113
// AspxNuke.Log.IDAL.ILogging log = new AspxNuke.Log.NHibernateDAL.Logging(); 114
// log.WriteEntry(string.Format("{0} {1}.{2}", "PostProceed", invocation.Method.DeclaringType, invocation.Method.Name)); 115
//} 116
//base.PostProceed(invocation, ref returnValue, arguments); 117
} 118
119
/// <summary> 120
/// 拦截 121
/// </summary> 122
/// <param name="invocation">IInvocation</param> 123
/// <param name="args">参数</param> 124
/// <returns></returns> 125
public override object Intercept(IInvocation invocation, params object[] args) 126
{ 127
try 128
{ 129
PreProceed(invocation, args); 130
131
object ret; 132
//事务判断 133
if (IsTransaction) 134
{ 135
using (TransactionScope ts = new TransactionScope()) 136
{ 137
try 138
{ 139
ret = invocation.Proceed(args); 140
ts.Complete(); 141
} 142
catch (Exception ex) 143
{ 144
throw (ex); 145
} 146
} 147
} 148
else 149
{ 150
ret = invocation.Proceed(args); 151
} 152
153
PostProceed(invocation, ref ret, args); 154
return ret; 155
} 156
catch (Exception ex) 157
{ 158
////日志判断 159
//if (IsErrorLog) 160
//{ 161
// AspxNuke.Log.IDAL.ILogging log = new AspxNuke.Log.NHibernateDAL.Logging(); 162
// log.WriteException(ex); 163
//} 164
throw ex; 165
} 166
} 167
} 168
} 169





}