Skip to main content

Hellang.Middleware.ProblemDetails

C# API reference for the namespace Hellang.Middleware.ProblemDetails.

Public API

Class: ExceptionProblemDetails

Canonical path: Hellang.Middleware.ProblemDetails.ExceptionProblemDetails

Declared in: ExceptionProblemDetails.cs

Signature

[ExcludeFromCodeCoverage]
[Obsolete("From v5.0, the ProblemDetails middleware will automatically include exception details for all exceptions. " +
"Because of that, there's no point in using this class. StatusCodeProblemDetails should be used instead.")]
public class ExceptionProblemDetails : StatusCodeProblemDetails
{
[JsonIgnore]
public Exception Error { get; set; }
}

Class: ProblemDetailsException

Canonical path: Hellang.Middleware.ProblemDetails.ProblemDetailsException

Declared in: ProblemDetailsException.cs

Signature

public class ProblemDetailsException : Exception
{
public MvcProblemDetails Details { get; }
}

Class: ProblemDetailsExtensions

Canonical path: Hellang.Middleware.ProblemDetails.ProblemDetailsExtensions

Declared in: ProblemDetailsExtensions.cs

Signature

public static class ProblemDetailsExtensions
{
}

Class: ProblemDetailsFactory

Canonical path: Hellang.Middleware.ProblemDetails.ProblemDetailsFactory

Declared in: ProblemDetailsFactory.cs

Signature

public class ProblemDetailsFactory : MvcProblemDetailsFactory
{
}

Class: ProblemDetailsMiddleware

Canonical path: Hellang.Middleware.ProblemDetails.ProblemDetailsMiddleware

Declared in: ProblemDetailsMiddleware.cs

Signature

public class ProblemDetailsMiddleware
{
}

Class: ProblemDetailsOptions

Canonical path: Hellang.Middleware.ProblemDetails.ProblemDetailsOptions

Declared in: ProblemDetailsOptions.cs

Signature

public class ProblemDetailsOptions
{
public const string DefaultExceptionDetailsPropertyName = "exceptionDetails";

public const string DefaultTraceIdPropertyName = "traceId";

public int SourceCodeLineCount { get; set; }

public IFileProvider FileProvider { get; set; }

public Func<HttpContext, string?> GetTraceId { get; set; }

public Func<HttpContext, Exception, bool> IncludeExceptionDetails { get; set; }

public string TraceIdPropertyName { get; set; }

public string ExceptionDetailsPropertyName { get; set; }

public Func<HttpContext, bool> IsProblem { get; set; }

public Func<HttpContext, MvcProblemDetails> MapStatusCode { get; set; }

public Action<HttpContext, MvcProblemDetails>? OnBeforeWriteDetails { get; set; }

public Func<HttpContext, Exception, MvcProblemDetails, bool> ShouldLogUnhandledException { get; set; }

public Action<HttpContext, HeaderDictionary> AppendCacheHeaders { get; set; }

public HashSet<string> AllowedHeaderNames { get; }

public MediaTypeCollection ContentTypes { get; }

public int ValidationProblemStatusCode { get; set; }
}

Class: ProblemDetailsOptionsSetup

Canonical path: Hellang.Middleware.ProblemDetails.ProblemDetailsOptionsSetup

Declared in: ProblemDetailsOptionsSetup.cs

Signature

public class ProblemDetailsOptionsSetup : IConfigureOptions<ProblemDetailsOptions>
{
}

Class: StatusCodeProblemDetails

Canonical path: Hellang.Middleware.ProblemDetails.StatusCodeProblemDetails

Declared in: StatusCodeProblemDetails.cs

Signature

public class StatusCodeProblemDetails : MvcProblemDetails
{
}

Constructor: ExceptionProblemDetails

Canonical path: Hellang.Middleware.ProblemDetails.ExceptionProblemDetails.ExceptionProblemDetails

Declared in: ExceptionProblemDetails.cs

Signatures

public ExceptionProblemDetails(Exception error) : this(error, StatusCodes.Status500InternalServerError) { }
public ExceptionProblemDetails(Exception error, int statusCode) : base(statusCode) { }

Constructor: ProblemDetailsException

Canonical path: Hellang.Middleware.ProblemDetails.ProblemDetailsException.ProblemDetailsException

Declared in: ProblemDetailsException.cs

Signatures

public ProblemDetailsException(MvcProblemDetails details)
: this(details, null) { }
public ProblemDetailsException(MvcProblemDetails details, Exception? innerException)
: base($"{details.Type} : {details.Title}", innerException) { }
public ProblemDetailsException(int statusCode)
: this(StatusCodeProblemDetails.Create(statusCode)) { }
public ProblemDetailsException(int statusCode, Exception innerException)
: this(StatusCodeProblemDetails.Create(statusCode), innerException) { }
public ProblemDetailsException(int statusCode, string title)
: this(StatusCodeProblemDetails.Create(statusCode, title), null) { }
public ProblemDetailsException(int statusCode, string title, Exception innerException)
: this(StatusCodeProblemDetails.Create(statusCode, title), innerException) { }

Constructor: ProblemDetailsFactory

Canonical path: Hellang.Middleware.ProblemDetails.ProblemDetailsFactory.ProblemDetailsFactory

Declared in: ProblemDetailsFactory.cs

Signature

public ProblemDetailsFactory(
IOptions<ProblemDetailsOptions> options,
ILogger<ProblemDetailsFactory> logger,
IHostEnvironment environment) { }

Constructor: ProblemDetailsMiddleware

Canonical path: Hellang.Middleware.ProblemDetails.ProblemDetailsMiddleware.ProblemDetailsMiddleware

Declared in: ProblemDetailsMiddleware.cs

Signature

public ProblemDetailsMiddleware(
RequestDelegate next,
IOptions<ProblemDetailsOptions> options,
ProblemDetailsFactory factory,
IActionResultExecutor<ObjectResult> executor,
ILogger<ProblemDetailsMiddleware> logger,
DiagnosticListener diagnosticListener) { }

Constructor: ProblemDetailsOptions

Canonical path: Hellang.Middleware.ProblemDetails.ProblemDetailsOptions.ProblemDetailsOptions

Declared in: ProblemDetailsOptions.cs

Signature

public ProblemDetailsOptions() { }

Constructor: StatusCodeProblemDetails

Canonical path: Hellang.Middleware.ProblemDetails.StatusCodeProblemDetails.StatusCodeProblemDetails

Declared in: StatusCodeProblemDetails.cs

Signature

public StatusCodeProblemDetails(int statusCode) { }

Extension Method: AddProblemDetails

Canonical path: Hellang.Middleware.ProblemDetails.ProblemDetailsExtensions.AddProblemDetails

Declared in: ProblemDetailsExtensions.cs

Signatures

public static IServiceCollection AddProblemDetails(this IServiceCollection services) { }
public static IServiceCollection AddProblemDetails(this IServiceCollection services, Action<ProblemDetailsOptions>? configure) { }

Extension Method: UseProblemDetails

Canonical path: Hellang.Middleware.ProblemDetails.ProblemDetailsExtensions.UseProblemDetails

Declared in: ProblemDetailsExtensions.cs

Signature

public static IApplicationBuilder UseProblemDetails(this IApplicationBuilder app) { }

Method: ToString

Canonical path: Hellang.Middleware.ProblemDetails.ProblemDetailsException.ToString

Declared in: ProblemDetailsException.cs

Signature

public override string ToString() { }

Method: CreateProblemDetails

Canonical path: Hellang.Middleware.ProblemDetails.ProblemDetailsFactory.CreateProblemDetails

Declared in: ProblemDetailsFactory.cs

Signature

public override MvcProblemDetails CreateProblemDetails(
HttpContext context,
int? statusCode = null,
string? title = null,
string? type = null,
string? detail = null,
string? instance = null) { }

Method: CreateValidationProblemDetails

Canonical path: Hellang.Middleware.ProblemDetails.ProblemDetailsFactory.CreateValidationProblemDetails

Declared in: ProblemDetailsFactory.cs

Signatures

public ValidationProblemDetails CreateValidationProblemDetails(HttpContext context, SerializableError error) { }
public virtual ValidationProblemDetails CreateValidationProblemDetails(HttpContext context, SerializableError error, int? statusCode) { }
public virtual ValidationProblemDetails CreateValidationProblemDetails(HttpContext context, IDictionary<string, string[]> errors) { }
public virtual ValidationProblemDetails CreateValidationProblemDetails(HttpContext context, IDictionary<string, string[]> errors, int? statusCode) { }
public override ValidationProblemDetails CreateValidationProblemDetails(
HttpContext context,
ModelStateDictionary modelStateDictionary,
int? statusCode = null,
string? title = null,
string? type = null,
string? detail = null,
string? instance = null) { }

Method: GetDetails

Canonical path: Hellang.Middleware.ProblemDetails.ProblemDetailsFactory.GetDetails

Declared in: ProblemDetailsFactory.cs

Signature

public MvcProblemDetails? GetDetails(HttpContext context, Exception error) { }

Method: Invoke

Canonical path: Hellang.Middleware.ProblemDetails.ProblemDetailsMiddleware.Invoke

Declared in: ProblemDetailsMiddleware.cs

Signature

public async Task Invoke(HttpContext context) { }

Method: Ignore

Canonical path: Hellang.Middleware.ProblemDetails.ProblemDetailsOptions.Ignore

Declared in: ProblemDetailsOptions.cs

Signature

public void Ignore<TException>() where TException : Exception { }

Method: Map

Canonical path: Hellang.Middleware.ProblemDetails.ProblemDetailsOptions.Map

Declared in: ProblemDetailsOptions.cs

Signatures

public void Map<TException>(Func<HttpContext, TException, MvcProblemDetails?> mapping) where TException : Exception { }
public void Map<TException>(Func<TException, MvcProblemDetails?> mapping) where TException : Exception { }
public void Map<TException>(
Func<HttpContext, TException, bool> predicate,
Func<HttpContext, TException, MvcProblemDetails?> mapping)
where TException : Exception { }

Method: MapToStatusCode

Canonical path: Hellang.Middleware.ProblemDetails.ProblemDetailsOptions.MapToStatusCode

Declared in: ProblemDetailsOptions.cs

Signature

public void MapToStatusCode<TException>(int statusCode) where TException : Exception { }

Method: Rethrow

Canonical path: Hellang.Middleware.ProblemDetails.ProblemDetailsOptions.Rethrow

Declared in: ProblemDetailsOptions.cs

Signatures

public void Rethrow<TException>() where TException : Exception { }
public void Rethrow(Func<HttpContext, Exception, bool> predicate) { }
public void Rethrow<TException>(Func<HttpContext, TException, bool> predicate) where TException : Exception { }

Method: RethrowAll

Canonical path: Hellang.Middleware.ProblemDetails.ProblemDetailsOptions.RethrowAll

Declared in: ProblemDetailsOptions.cs

Signature

public void RethrowAll() { }

Method: Configure

Canonical path: Hellang.Middleware.ProblemDetails.ProblemDetailsOptionsSetup.Configure

Declared in: ProblemDetailsOptionsSetup.cs

Signature

public void Configure(ProblemDetailsOptions options) { }

Method: IsProblemStatusCode

Canonical path: Hellang.Middleware.ProblemDetails.ProblemDetailsOptionsSetup.IsProblemStatusCode

Declared in: ProblemDetailsOptionsSetup.cs

Signature

public static bool IsProblemStatusCode(int? statusCode) { }

Method: Create

Canonical path: Hellang.Middleware.ProblemDetails.StatusCodeProblemDetails.Create

Declared in: StatusCodeProblemDetails.cs

Signature

public static MvcProblemDetails Create(int statusCode) { }