C # Exceptioncontext исключение преобразования в пользовательское исключение дает ноль - PullRequest
0 голосов
/ 20 декабря 2018

При попытке преобразовать context.Exception в DomainException, я всегда получаю значение NULL

public class DomainExceptionFilter : IExceptionFilter
{
    public void OnException(ExceptionContext context)
    {
        DomainException domainException = context.Exception as DomainException; // context.Exception is not null whereas
        if (domainException != null) // always null
        {
            string json = JsonConvert.SerializeObject(domainException.Message);

            context.Result = new BadRequestObjectResult(json);
            context.HttpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest;
        }
    }
}

Это мой класс исключений выглядит как

public class DomainException : Exception
{
    internal DomainException(string businessMessage)
        : base(businessMessage)
    {
    }
}

Я пытался добавить новую конструкциюв классе DomainException принять параметр исключения следующим образом.

public class DomainException : Exception
{
    internal DomainException(string businessMessage)
        : base(businessMessage)
    {
    }
    public DomainException(Exception ex) : base(ex.Message)
    {

    }
}

Нет ошибок, но получено значение NULL при преобразовании в мое обычное исключение (domainException)?

1 Ответ

0 голосов
/ 21 декабря 2018

Вместо того, чтобы просто напрямую преобразовывать его через «как», вам нужно явно преобразовать его, так как ваш тип DomainException не совпадает с context.Exception.

Таким образом, вы можете преобразовать его, как показано ниже:

DomainException dex = new  DomainException(context.Exception.Message);

И далее вы можете использовать 'dex' где угодно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...