接口如:
public IList<string> TestAOP(string token);
public IMethodReturn Invoke(IMethodInvocation input, GetNextInterceptionBehaviorDelegate getNext) { /*验证token的账户是否已登陆 *2014年11月12日 14:01:32 */ if (input.Arguments.ContainsParameter("token")) { var tokenValue = input.Arguments["token"].ToString(); //存在token值则验证(目前还存在前端未传情况 空值token 跳过) if (!string.IsNullOrWhiteSpace(tokenValue)) { if (!ExistsUserLogin(tokenValue).IsLogin) { IMethodReturn mr = new VirtualMethodReturn(input, null); //创建返回对象 var methodInfo = input.MethodBase as MethodInfo; mr.ReturnValue = Activator.CreateInstance(methodInfo.ReturnType); //获取当前接口的返回类型并得到初始化实例填充到 返回对象里 return mr; } } }
return getNext().Invoke(input, getNext);
}