افزودن FilterAttribute به Action

مراحل زیر را برای ایجاد یک FilterAttribute طی کنید:
1- کلاسی بسازید و از اینترفیس IActionFilterارث‌بری کنید.
Install-Package Microsoft.AspNetCore.Mvc.Core -Version 2.2.5
2- متدهای این اینترفیس یعنی را پیاده‌سازی کنید.
3- از قاعده زیر پیروی کنید

این مثال موردی بدون استفاده از لایبرری MVC را شرح میدهد.

internal class SecondSampleAttribute : Attribute, IActionFilter
{
	public void OnActionExecuting(ActionExecutingContext context)
	{
		// Do something before the action executes.
		logData.ActionName = context.ActionDescriptor.RouteValues["action"];
		logData.ServiceName = context.ActionDescriptor.RouteValues["controller"];
		var t1 = RequestBodyAsString_Async(context.HttpContext.Request).Result;
	}

	public void OnActionExecuted(ActionExecutedContext context)
	{
		// Do something after the action executes.
		var t2 = context.Result;
		if (t2 is JsonResult json)
		{
			var tt = json.Value;
		}
		if (t2 is IEnumerable<string> items)
		{
			var tty = items.ToString();
		}
		if (t2 is IActionResult actionResult)
		{
			var ee = actionResult as OkObjectResult;
			var asss = ee.Value;
		}
		if (t2 is ViewResult vResult)
		{
			var dfdf = vResult.ViewData;
		}
		if (t2 is object sObj)
		{
			var afsas = sObj._Serializer();
		}
	}

	/// <summary>
	/// Read request body as string
	/// </summary>
	/// <param name="request"></param>
	/// <returns></returns>
	private async Task<string> RequestBodyAsString_Async(HttpRequest request)
	{
		string _Result = string.Empty;
		try
		{
			var body = request.Body;
			using (StreamReader stream = new StreamReader(body))
			{
				_Result = await stream.ReadToEndAsync();
			}
		}
		finally
		{ }
		return _Result;
	}

}