using System; using System.Linq; using System.Text; namespace 电子展板.Base { /// /// 配置类 /// public class MyConfig : ModelBase { /// /// 时间 /// [Comment("时间")] public string Time { get; set; } /// /// 时间字体大小 /// [Comment("时间字体大小")] public int TimeSize { get; set; } /// /// 负责人 /// [Comment("负责人")] public string Charger { get; set; } /// /// 负责人字体大小 /// [Comment("负责人字体大小")] public int ChargerSize { get; set; } /// /// 风险等级 /// [Comment("风险等级")] public string RiskLevel { get; set; } /// /// 风险等级字体大小 /// [Comment("风险等级字体大小")] public int RiskLevelSize { get; set; } /// /// 工作内容 /// [Comment("工作内容")] public string Content { get; set; } /// /// 工作内容字体大小 /// [Comment("工作内容字体大小")] public int ContentSize { get; set; } /// /// 危险点 /// [Comment("危险点")] public string DangerPoint { get; set; } /// /// 危险点 /// [Comment("危险点字体大小")] public int DangerPointSize { get; set; } /// /// 重点措施 /// [Comment("重点措施")] public string Measures { get; set; } [Comment("重点措施字体大小")] public int MeasuresSize { get; set; } [Comment("党员1图片路径")] public string CPCMember1Path { get; set; } [Comment("党员1姓名")] public string CPCMember1Name { get; set; } [Comment("党员2图片路径")] public string CPCMember2Path { get; set; } [Comment("党员2姓名")] public string CPCMember2Name { get; set; } [Comment("党员3图片路径")] public string CPCMember3Path { get; set; } [Comment("党员3姓名")] public string CPCMember3Name { get; set; } [Comment("党员4图片路径")] public string CPCMember4Path { get; set; } [Comment("党员4姓名")] public string CPCMember4Name { get; set; } [Comment("党员字体大小")] public int CPCMemberSize { get; set;} /// /// 转换成JSON字符串 /// /// public string ToJson() { StringBuilder sb = new StringBuilder(); sb.AppendLine("{"); //得到所有的Property var properties = GetType().GetProperties(); for (int i = 0; i < properties.Length; i++) { var property = properties[i]; string endChar = ","; if (i == properties.Length - 1) { endChar = ""; } var comment = property.GetCustomAttributes(typeof(CommentAttribute), false).FirstOrDefault() as CommentAttribute; string commentText = ""; if (comment != null) { commentText = $" /* {comment.Comment} */"; } string propertyName = property.Name; var value = property.GetValue(this, null); if (value != null) { var valueType = value.GetType(); if (valueType == typeof(string)) { sb.AppendLine($" \"{propertyName}\":\"{value}\"{endChar}{commentText}"); } else { sb.AppendLine($" \"{propertyName}\":{value}{endChar}{commentText}"); } } } sb.AppendLine("}"); return sb.ToString(); } } public class CommentAttribute : Attribute { public string Comment { get; set; } public CommentAttribute(string comment) { Comment = comment; } } }