【问题标题】:Get Values from ResultExecutedContext result从 ResultExecutedContext 结果中获取值
【发布时间】:2018-02-27 16:40:20
【问题描述】:

如何从 ResultExecutedContext 结果中获取值? 在调试中我可以看到有一些值:

但是智能感知没有看到它。

【问题讨论】:

  • 在监视窗口中按原样投射:((Microsoft.AspNetCore.Mvc.ObjectResult) context.Result).Value

标签: c# .net asp.net-core httpcontext


【解决方案1】:

使用System.ReflectionJsonResult 来达到您想要的值。还将 [JsonResultAttribute] 添加到您的控制器操作中。

public class JsonResultAttribute : ActionFilterAttribute
{
    public override void OnResultExecuted(ResultExecutedContext filterContext)
    {

        // Detect that the result is of type JsonResult
        if (filterContext.Result is JsonResult)
        {
            var jsonResult = filterContext.Result as JsonResult;

            // Dig into the Data Property
            foreach(var prop in jsonResult.Value.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public))
            {
                var propName = prop.Name;
                var propValue = prop.GetValue(jsonResult.Value,null);

                Console.WriteLine("Property: {0}, Value: {1}",propName,     propValue);

                // Detect if property is an DateTime
                if (propValue is DateTime)
                {
                    // Take some action
                }
            }
        }
    }
}

【讨论】:

    猜你喜欢
    • 2020-01-30
    • 1970-01-01
    • 2019-01-09
    • 2015-09-09
    • 2015-04-23
    • 2011-11-15
    • 2012-08-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多