37 lines
984 B
C#
37 lines
984 B
C#
using Demo.Models;
|
|
|
|
namespace Demo.Features;
|
|
|
|
/// <summary>
|
|
/// 默认的功能类,做委托容器用
|
|
/// </summary>
|
|
/// <typeparam name="TMetadata"></typeparam>
|
|
public sealed class DefaultFeature : Feature
|
|
{
|
|
public DefaultFeature(string name, FeatureFunction? executeFunction = null,
|
|
FeatureFunctionAsync? executeFunctionAsync = null,
|
|
int order = 1)
|
|
{
|
|
_executeFunction = executeFunction;
|
|
_executeFunctionAsync = executeFunctionAsync;
|
|
Name = name;
|
|
Order = order;
|
|
}
|
|
|
|
private readonly FeatureFunction? _executeFunction;
|
|
|
|
private readonly FeatureFunctionAsync? _executeFunctionAsync;
|
|
|
|
public override void Execute(IMetadata metadata)
|
|
{
|
|
_executeFunction?.Invoke(this, metadata);
|
|
}
|
|
|
|
public override async ValueTask ExecuteAsync(IMetadata metadata)
|
|
{
|
|
if (_executeFunctionAsync is not null)
|
|
{
|
|
await _executeFunctionAsync.Invoke(this, metadata);
|
|
}
|
|
}
|
|
} |