Lightweight, developer-friendly rule engine for .NET
The RuleFlow.Extensions.DependencyInjection package registers RuleFlow with Microsoft.Extensions.DependencyInjection. Playground: Dependency Injection (DependencyInjectionScenario.cs).
services.AddRuleFlow()var builder = WebApplication.CreateBuilder(args);
builder.Services.AddRuleFlow();
var app = builder.Build();
Optional configuration:
builder.Services.AddRuleFlow(options =>
{
options.EnableExplainability = true;
});
| Service | Lifetime | Role |
|---|---|---|
IRuleEngine |
Singleton | RuleEngine — evaluate rules |
IRuleContext |
Scoped | DefaultRuleContext — per-request context |
RuleFlowOptions |
Options | EnableExplainability (default true) |
IRuleEnginepublic class OrderService
{
private readonly IRuleEngine _ruleEngine;
public OrderService(IRuleEngine ruleEngine)
{
_ruleEngine = ruleEngine;
}
public RuleResult Process(Order order)
{
return _ruleEngine.Evaluate(order, OrderRules.ApprovalRules);
}
}