标签:
1.extjs4 作为前段框架,封装grid window form treegrid等。
2.EF codefirst作为orm底层。
3.使用ioc 依赖注入作为程序注入。
4.使用aop作为权限、日志、异常的拦截。避免程序中大量使用日志权限异常代码。
5.面向接口的服务,使用泛型模板作为数据操作。
6.使用log4net作为日志底层。
7.良好的权限控制,可判断前台操作跟后台权限操作。
8.使用NPOI作为excel操作框架。
9.权限基于反射,根据特性判断哪些可以控制权限。
10.linq扩展,可查询多where or等,更新删除操作可以where().Update()
11.不仅是权限系统,也是一套平台
QQ:2294508843
权限类根据特性控制是否需用控制权限,特性通过反射来获取
public static Dictionary<string, IList<AOPAttribute>> GetAOPAttribute(IInvocation invocation)
{
// System.Reflection.MemberInfo info = invocation.TargetType;
Dictionary<string, IList<AOPAttribute>> dict = new Dictionary<string, IList<AOPAttribute>>();
Type type = invocation.TargetType;
AOPAttribute[] classAttribute = type.GetCustomAttributes(typeof(AOPAttribute), true) as AOPAttribute[];
dict.Add("class", classAttribute.ToList<AOPAttribute>());
var methodName = invocation.Method.Name;//.GetCustomAttributes(typeof(AOPAttribute), true) as AOPAttribute[];
IList<AOPAttribute> methodAttributeList = new List<AOPAttribute>();
MethodInfo[] methods = type.GetMethods();
foreach (MethodInfo item in methods)
{
if (item.Name == methodName)
{
AOPAttribute[] methodAttributes = item.GetCustomAttributes(typeof(AOPAttribute), true) as AOPAttribute[];
if (methodAttributes.Length != 0)
{ //&&! dict["method"].Contains(methodAttributes)
if (!dict.ContainsKey("method"))
{
dict.Add("method", methodAttributes.ToList<AOPAttribute>());
}
else
{
dict["method"]= methodAttributes.ToList<AOPAttribute>();
}
}
else
{
dict.Add("method", null);
}
}
}
return dict;
}
标签:
原文地址:http://www.cnblogs.com/acer3680/p/4225446.html