Table of Contents

Class Processor<TResult>

Namespace
CMS.Plugin.BarcodeManagement.Abstractions.Processors
Assembly
CMS.Plugin.BarcodeManagement.Abstractions.dll

抽象类,定义一个通用的处理器,支持链式调用和异步处理。

public abstract class Processor<TResult>

Type Parameters

TResult

处理结果的类型。

Inheritance
Processor<TResult>
Derived
Inherited Members

Fields

_nextProcessor

下一个处理器,用于链式调用。

protected Processor<TResult>? _nextProcessor

Field Value

Processor<TResult>

_processingDatas

存储处理过程中使用的数据的字典。

protected Dictionary<string, dynamic> _processingDatas

Field Value

Dictionary<string, object>

Properties

ProcessorKey

唯一标识。

public string ProcessorKey { get; set; }

Property Value

string

Methods

AbortAsync(TResult)

抽象方法,判断是否需要中止处理。

protected abstract Task<bool> AbortAsync(TResult result)

Parameters

result TResult

当前处理结果。

Returns

Task<bool>

如果需要中止处理,返回 true;否则返回 false

ExecuteProcessAsync()

抽象方法,执行当前处理器的核心逻辑。

protected abstract Task<TResult> ExecuteProcessAsync()

Returns

Task<TResult>

返回处理结果。

GetAsync<TValue>(string)

异步获取处理数据字典中的值。

protected Task<TValue> GetAsync<TValue>(string key)

Parameters

key string

键。

Returns

Task<TValue>

返回值,如果键不存在则返回默认值。

Type Parameters

TValue

值的类型。

IterateProcessAsync()

异步迭代处理方法,依次调用当前处理器和链中的下一个处理器。

public virtual Task<TResult> IterateProcessAsync()

Returns

Task<TResult>

返回处理结果。

SetAsync<TValue>(string, TValue)

异步设置处理数据字典中的键值对。

protected Task SetAsync<TValue>(string key, TValue value)

Parameters

key string

键。

value TValue

值。

Returns

Task

一个已完成的任务。

Type Parameters

TValue

值的类型。

SetNext(Processor<TResult>?)

设置下一个处理器,并共享处理数据字典。

public void SetNext(Processor<TResult>? nextProcessor)

Parameters

nextProcessor Processor<TResult>

下一个处理器实例。