public override async void OnActionExecuted(ActionExecutedContext context)
{
#region 对特性上的注释处理
if (context.ActionDescriptor.EndpointMetadata.Any(item => item.GetType() == typeof(LogAddAttribute)))
{
string actionname = context.RouteData.Values["action"].ToString();
var actionDescriptor = context.ActionDescriptor as Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor;
var actionAttributes = actionDescriptor.MethodInfo.GetCustomAttributes(inherit: true);
var myAttribute = actionAttributes.FirstOrDefault(a => a.GetType() == typeof(LogAddAttribute)) as LogAddAttribute;
if (myAttribute != null)
{
await _systemSetUpLogService.InsertLog(null, actionname);
}
}
#endregion
base.OnActionExecuted(context);
}

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
public class LogAddAttribute : Attribute
{
/// <summary>
/// 类型
/// </summary>
public OperateTypeEnum Type { get; set; }
/// <summary>
/// 描述
/// </summary>
public string Description { get; set; }
public LogAddAttribute() { }
public LogAddAttribute(OperateTypeEnum Type, string Description)
{
this.Type = Type;
this.Description = Description;
}
}
/// <summary>
/// 不需要记录日志
/// </summary>
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
public class LogNotAddAttribute : Attribute
{
}