using System.Text; using EasyTool; using Furion.DependencyInjection; namespace Yi.Framework.Module.WebFirstManager.Handler { public class FieldTemplateHandler : TemplateHandlerBase, ITemplateHandler, ISingleton { public string Invoker(string str) { return str.Replace("@field", BuildFields()); } /// /// 生成Fields /// /// public string BuildFields() { StringBuilder fieldStrs = new StringBuilder(); foreach (var field in Fields) { var typeStr = EnumUtil.GetDescriptionByValue(field.FieldType); var nameStr = field.Name; //添加备注 if (string.IsNullOrEmpty(field.Description)) { var desStr = "/// " + @$"///{field.Description}" + "/// "; fieldStrs.AppendLine(desStr); } //添加长度 if (field.Length != 0) { var lengthStr = $"[SugarColumn(Length ={field.Length})]"; fieldStrs.AppendLine(lengthStr); } //添加字段 var fieldStr = $"public {typeStr} {nameStr} {{ get; set; }}"; fieldStrs.AppendLine(fieldStr); } return fieldStrs.ToString(); } } }