using System.Diagnostics; using CodePlay.Core.Interfaces; using CodePlay.Core.Models; namespace CodePlay.Core.Pipeline; /// /// 转换管道 - 按优先级顺序执行所有行级转换器 /// public class ConversionPipeline { private readonly List _converters = new(); public void Register(ILineConverter converter) { _converters.Add(converter); } public string Execute(string line, ConversionContext context) { if (string.IsNullOrEmpty(line)) return line; return _converters .OrderBy(c => c.Priority) .Aggregate(line, (current, converter) => converter.Convert(current, context)); } }