ardalis/Result
Ver no GitHubUnable to cast object of type 'Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor' to type 'Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor'.
Open
#137 aberto em 1 de mai. de 2023
bughelp wanted
Métricas do repositório
- Stars
- (1.034 stars)
- Métricas de merge de PR
- (Métricas PR pendentes)
Description
Since the version 7.0.0, I get an exception
Unable to cast object of type 'Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor' to type 'Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor'.
If I rollback to 4.0.2, everything seems fine. I can see the method has changed, I don't know if it's an issue with the controllers configuration
// fails when accessing controller.ControllerContext.ActionDescriptor
internal static ActionResult ToActionResult(this ControllerBase controller, Ardalis.Result.IResult result)
{
IDictionary<object, object> properties = controller.ControllerContext.ActionDescriptor.Properties;
ResultStatusOptions resultStatusOptions = (properties.ContainsKey((object) "ResultStatusMap") ? properties[(object) "ResultStatusMap"] as ResultStatusMap : new ResultStatusMap().AddDefaultMap())[result.Status];
int statusCode = (int) resultStatusOptions.GetStatusCode(controller.HttpContext.Request.Method);
return result.Status == ResultStatus.Ok ? (!typeof (Ardalis.Result.Result).IsInstanceOfType((object) result) ? (ActionResult) controller.StatusCode(statusCode, result.GetValue()) : (ActionResult) controller.StatusCode(statusCode)) : (!(resultStatusOptions.ResponseType == (Type) null) ? (ActionResult) controller.StatusCode(statusCode, resultStatusOptions.GetResponseObject(controller, result)) : (ActionResult) controller.StatusCode(statusCode));
}
// The property is being cast here
// Microsoft.AspNetCore.Mvc.ControlleContext
public new ControllerActionDescriptor ActionDescriptor
{
get { return (ControllerActionDescriptor)base.ActionDescriptor; }
set { base.ActionDescriptor = value; }
}