⚠ Deprecated: Legacy, CriticalBugs
Core primitives for Clean Architecture: Results, guards, pipeline behaviors, logging abstractions, domain events, and clocks.
$ dotnet add package CleanArchitecture.Extensions.CoreCore primitives for Clean Architecture apps built on MediatR.
LegacyResult/LegacyResult<T>) to ease migration from Jason Taylor’s Result shape.dotnet add package CleanArchitecture.Extensions.Core --version 0.1.1-preview.1
Register Core services and configure options:
using CleanArchitecture.Extensions.Core;
using CleanArchitecture.Extensions.Core.Options;
using MediatR;
services.AddCleanArchitectureCore(options =>
{
options.CorrelationHeaderName = "X-Trace-ID";
options.EnablePerformanceLogging = true;
options.PerformanceWarningThreshold = TimeSpan.FromMilliseconds(250);
});
services.AddMediatR(cfg =>
{
cfg.RegisterServicesFromAssemblyContaining<Program>();
cfg.AddCleanArchitectureCorePipeline();
// Optional: cfg.AddCleanArchitectureCorePipeline(p => p.UsePerformanceBehavior = false);
});
Work with results:
using CleanArchitecture.Extensions.Core.Results;
var result = Result.Success(order, Activity.Current?.Id);
if (result.IsFailure)
{
return Results.BadRequest(result.Errors);
}
// Map to/from template-style Result shape during migration.
var legacy = LegacyResult.FromResult(result);
var backToRich = legacy.ToResult(result.TraceId);