2 changed files with 140 additions and 0 deletions
@ -0,0 +1,70 @@ |
|||
# LINGYUN.Abp.Rules.NRules |
|||
|
|||
## Module Description |
|||
|
|||
Rule engine implementation module based on [NRules](https://github.com/NRules/NRules). |
|||
|
|||
### Base Modules |
|||
|
|||
* LINGYUN.Abp.Rules |
|||
|
|||
### Features |
|||
|
|||
* Provides rule engine implementation based on NRules |
|||
* Supports automatic rule registration through dependency injection |
|||
* Supports dynamic rule loading and execution |
|||
|
|||
### Configuration |
|||
|
|||
* AbpNRulesOptions |
|||
* DefinitionRules - List of defined rules, used to store all rule types registered through dependency injection |
|||
|
|||
### How to Use |
|||
|
|||
1. Add `AbpNRulesModule` dependency |
|||
|
|||
```csharp |
|||
[DependsOn(typeof(AbpNRulesModule))] |
|||
public class YouProjectModule : AbpModule |
|||
{ |
|||
} |
|||
``` |
|||
|
|||
2. Create a rule class |
|||
|
|||
```csharp |
|||
public class YourRule : RuleBase |
|||
{ |
|||
public override void Define() |
|||
{ |
|||
// Define rule conditions and actions |
|||
When() |
|||
.Match<YourInput>(x => x.SomeCondition); |
|||
Then() |
|||
.Do(ctx => /* Execute rule action */); |
|||
} |
|||
} |
|||
``` |
|||
|
|||
3. Register and execute rules |
|||
|
|||
```csharp |
|||
public class YourService |
|||
{ |
|||
private readonly IRuleProvider _ruleProvider; |
|||
|
|||
public YourService(IRuleProvider ruleProvider) |
|||
{ |
|||
_ruleProvider = ruleProvider; |
|||
} |
|||
|
|||
public async Task ProcessAsync() |
|||
{ |
|||
var input = new YourInput(); |
|||
// Execute rule validation |
|||
await _ruleProvider.ExecuteAsync(input); |
|||
} |
|||
} |
|||
``` |
|||
|
|||
[Back to TOC](../../../README.md) |
|||
@ -0,0 +1,70 @@ |
|||
# LINGYUN.Abp.Rules.NRules |
|||
|
|||
## 模块说明 |
|||
|
|||
基于 [NRules](https://github.com/NRules/NRules) 的规则引擎实现模块。 |
|||
|
|||
### 基础模块 |
|||
|
|||
* LINGYUN.Abp.Rules |
|||
|
|||
### 功能定义 |
|||
|
|||
* 提供基于 NRules 的规则引擎实现 |
|||
* 支持通过依赖注入自动注册规则 |
|||
* 支持规则的动态加载和执行 |
|||
|
|||
### 配置定义 |
|||
|
|||
* AbpNRulesOptions |
|||
* DefinitionRules - 定义规则列表,用于存储所有通过依赖注入注册的规则类型 |
|||
|
|||
### 如何使用 |
|||
|
|||
1. 添加 `AbpNRulesModule` 依赖 |
|||
|
|||
```csharp |
|||
[DependsOn(typeof(AbpNRulesModule))] |
|||
public class YouProjectModule : AbpModule |
|||
{ |
|||
} |
|||
``` |
|||
|
|||
2. 创建规则类 |
|||
|
|||
```csharp |
|||
public class YourRule : RuleBase |
|||
{ |
|||
public override void Define() |
|||
{ |
|||
// 定义规则条件和动作 |
|||
When() |
|||
.Match<YourInput>(x => x.SomeCondition); |
|||
Then() |
|||
.Do(ctx => /* 执行规则动作 */); |
|||
} |
|||
} |
|||
``` |
|||
|
|||
3. 注册规则并执行 |
|||
|
|||
```csharp |
|||
public class YourService |
|||
{ |
|||
private readonly IRuleProvider _ruleProvider; |
|||
|
|||
public YourService(IRuleProvider ruleProvider) |
|||
{ |
|||
_ruleProvider = ruleProvider; |
|||
} |
|||
|
|||
public async Task ProcessAsync() |
|||
{ |
|||
var input = new YourInput(); |
|||
// 执行规则验证 |
|||
await _ruleProvider.ExecuteAsync(input); |
|||
} |
|||
} |
|||
``` |
|||
|
|||
[返回目录](../../../README.md) |
|||
Loading…
Reference in new issue