using MesETL.App.HostedServices; namespace MesETL.App.Options { public class DataInputOptions { /// /// 文件输入的目录 /// public string? InputDir { get; set; } #region CSV /// /// 字符串的包围符号,默认为双引号" /// public char QuoteChar { get; set; } = '"'; /// /// 每个字段的分割符,默认逗号, /// public string Delimiter { get; set; } = ","; #endregion #region Mock /// /// 生成模拟数据进行测试 /// 启用后在读取数据时会截取ZST文件中的CSV文件的第一条记录,然后复制成指定数量的数据 /// public bool UseMock { get; set; } /// /// 当开启模拟数据生成时,模拟数据的倍数 /// public double MockCountMultiplier { get; set; } = 1; /// /// 配置每张表生成模拟数据的规则,此属性暂时在程序中配置 /// public Dictionary? TableMockConfig { get; set; } #endregion #region Reader /// /// 配置输入表及其顺序,如果为空则按照程序默认的顺序。 /// 该值如果存在,程序会按照集合中表的顺序来读取数据,不在集合中的表将被忽略! /// public string[]? TableOrder { get; set; } /// /// 忽略集合中配置的表,不进行读取 /// public string[] TableIgnoreList { get; set; } = []; /// /// 配置如何从文件名转换为表名和表头 /// public Func? FileInputMetaBuilder { get; set; } /// /// 表输入完成事件 /// public Action? OnTableInputCompleted { get; set; } #endregion } }