/// <summary> /// 格式化默认项的值 /// </summary> /// <param name="item">项信息</param> /// <param name="entityInfo">实体信息</param> /// <param name="selectedProject">选中的项目</param> /// <param name="itemInfo">项的属性信息</param> /// <returns></returns> public static string FormatDefaultValue(ConfigItem item, EntityInfo entityInfo, Project selectedProject, UIModelItem itemInfo) { string value = item.DefaultValue; value = UIConfigItem.FormatParameter(value, entityInfo, selectedProject); value = value.Replace("{ItemSummary}", item.Summary); value = value.Replace("{ItemName}", item.Name); if (itemInfo != null) { value = value.Replace("{PropertyName}", itemInfo.PropertyName); value = value.Replace("{PropertySummary}", itemInfo.Summary); value = value.Replace("{PropertyTypeName}", itemInfo.TypeName); value = value.Replace("{PropertyTypeFullName}", itemInfo.TypeFullName); } return(value); }
///// <summary> ///// 清空项目的编译缓存 ///// </summary> //public void ClearCache(EntityInfo entityInfo, List<UIProjectItem> lstItem) //{ // foreach (UIProjectItem pitem in lstItem) // { // string mPath = UIConfigItem.FormatParameter(pitem.ModelPath, entityInfo); // CodeGenCache.DeleteGenerationer(mPath); // if (pitem.ChildItems != null && pitem.ChildItems.Count > 0) // { // ClearCache(entityInfo, pitem.ChildItems); // } // } //} /// <summary> /// 生成代码 /// </summary> /// <param name="entityInfo">实体信息</param> /// <param name="classConfig">UI配置信息</param> /// <param name="selectPropertys">选中需要生成的属性信息</param> /// <param name="lstItem">UI项目项</param> /// <param name="parentItem">父项</param> /// <returns></returns> private void GenerateCode(EntityInfo entityInfo, UIConfigItem classConfig, Project selectedProject, List <UIModelItem> selectPropertys, UIModelItem classInfo, List <UIProjectItem> lstItem, ProjectItem parentItem) { Encoding fileEncoding = null; foreach (UIProjectItem pitem in lstItem) { string mPath = UIConfigItem.FormatParameter(pitem.ModelPath, entityInfo, selectedProject); string tPath = UIConfigItem.FormatParameter(pitem.TargetPath, entityInfo, selectedProject); CodeGenInfo info = CodeGenCache.GetGenerationer(mPath, entityInfo); string content = info.Invoke(entityInfo, classConfig, selectPropertys, classInfo); fileEncoding = pitem.Encoding; ProjectItem item = SaveItem(tPath, selectedProject, content, pitem.GenType, parentItem, fileEncoding); if (pitem.ChildItems != null && pitem.ChildItems.Count > 0) { GenerateCode(entityInfo, classConfig, selectedProject, selectPropertys, classInfo, pitem.ChildItems, item); } } }