分类:
ASP.NET
using DevExpress.ExpressApp.DC; using DevExpress.ExpressApp.Model; using DevExpress.Persistent.Validation; using JGSoft.MES.Module.Extension.BaseBO; using JGSoft.MES.Module.Utils; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; namespace JGSoft.MES.Module.AttributeExtend { public class ModelAttribute { public static void GetAttribute() { Dictionary<String, String> titlelist = new Dictionary<String, String>(); #region 获取bo实体属性 if (CommonTools.application != null) { var list = CommonTools.application.Model.BOModel.ToList(); //添加md数据正文 StringBuilder content = new StringBuilder(); //菜单 StringBuilder Header = new StringBuilder(); //bo实体属性信息 StringBuilder textcontent = new StringBuilder(); foreach (IModelClass modelclass in list) { var typeinfo = modelclass.TypeInfo; bool issubclasssingle = typeinfo.Type.IsSubclassOf(typeof(SingleObject)); //跳过不继承的类 if (!issubclasssingle) { continue; } int count = 1; foreach (IMemberInfo minfo in typeinfo.Members) { //自定义的公共属性 并有displayname的字段 if (minfo.IsPublic && minfo.IsProperty && minfo.FindAttribute<XafDisplayNameAttribute>() != null) { XafDisplayNameAttribute displays = minfo.Owner.FindAttribute<XafDisplayNameAttribute>(); if (!titlelist.ContainsKey(minfo.Owner.Name)) { if (!string.IsNullOrEmpty(displays?.DisplayName)) { //标题 content.Append("##" + minfo.Owner.Name + "(" + displays?.DisplayName + ")"); //菜单 Header.Append("| 序号 <div style=\"width:25pt\"> | 字段 | 字段名称 <div style=\"width:75pt\"> | 主键 | 外键 | 数据类型 | 是否只读 <div style=\"width:50pt\"> | 长度 <div style=\"width:30pt\"> | 是否必填 <div style=\"width:50pt\"> |"); titlelist.Add(minfo.Owner.Name, displays?.DisplayName); } else { if (!string.IsNullOrEmpty(displays?.DisplayName)) { //标题 content.Append("##" + minfo.Owner.Name + ""); //菜单 Header.Append("| 序号 <div style=\"width:25pt\"> | 字段 | 字段名称 <div style=\"width:75pt\"> | 主键 | 外键 | 数据类型 | 是否只读 <div style=\"width:50pt\"> | 长度 <div style=\"width:30pt\"> | 是否必填 <div style=\"width:50pt\"> |"); titlelist.Add(minfo.Owner.Name, displays?.DisplayName); } } } var display = minfo.FindAttribute<XafDisplayNameAttribute>(); var require = minfo.FindAttribute<RuleRequiredFieldAttribute>(); bool required = require != null; if (!string.IsNullOrEmpty(minfo.Owner.Name) && !string.IsNullOrEmpty(displays?.DisplayName)) { textcontent.Append("\n"); //序号 textcontent.Append("| " + count + " |"); //字段 textcontent.Append(" " + minfo.Name + " |"); //字段名称 textcontent.Append(" " + display?.DisplayName + " |"); //主键 textcontent.Append(" " + minfo.IsKey + " |"); //外键 if (minfo.MemberType.FullName.Contains("JGSoft.MES.Module")) { textcontent.Append(" True |"); } else { textcontent.Append(" False |"); } //数据类型 if (minfo.MemberType.FullName.Contains("System.DateTime")) { textcontent.Append(" System.DateTime |"); } else { textcontent.Append(" " + minfo.MemberType.FullName + " |"); } //是否只读 textcontent.Append(" " + minfo.IsReadOnly + " |"); //长度 textcontent.Append(" " + minfo.Size + " |"); //是否必填 textcontent.Append(" " + required + " |"); } count++; } } if (!string.IsNullOrEmpty(Header.ToString()) && !string.IsNullOrEmpty(textcontent.ToString())) { content.Append("\n"); content.Append(Header); content.Append("\n"); content.Append("|--------|--------|--------|--------|--------|--------|--------|--------|--------|"); content.Append(textcontent); content.Append("\n"); Header.Length = 0; textcontent.Length = 0; } } string filepath = AppDomain.CurrentDomain.BaseDirectory + "ModelAttributeinfo"; //如果不存在就创建file文件夹 if (Directory.Exists(filepath) == false) { Directory.CreateDirectory(filepath); } string path = filepath + "\\bo实体属性信息.md"; FileStream file = null; //创建写入流文件存在则清空文件 if (File.Exists(path)) { file = new FileStream(path, FileMode.Truncate, FileAccess.Write); } else { //不存在则创建 file = new FileStream(path, FileMode.Create, FileAccess.Write); } //写入信息 byte[] writeBytes = Encoding.UTF8.GetBytes(content.ToString()); //写入文件流 file.Write(writeBytes, 0, writeBytes.Length); //关闭 file.Close(); } #endregion } } }
评价
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术