当前位置: 首页 > article >正文

贴代码PasteForm框架之框架核心帮助类PasteFormHelper说明

简介

PasteForm是贴代码推出的 “新一代CRUD” ,基于ABPvNext,目的是通过对Dto的特性的标注,从而实现管理端的统一UI,借助于配套的PasteBuilder代码生成器,你可以快速的为自己的项目构建后台管理端!目前管理端只有Html+js版本的,后续将支持小程序,Vue等

案例源码

案例源码在

https://gitee.com/pastecode/paste-template

不定期升级

AllInDto!

通过引入PasteForm,一个项目哪怕100个数据表,一般的管理页面也才不到10个,除非有非常多的特殊功能,否则都能用PasteForm中的表格和表单来实现!

在这里插入图片描述

本次的特性介绍,涉及的东西会多一些,你可以下载源码后,看看详细的,我们先来查看下各个特性的信息

需求说明

作为贴代码(https://soft.pastecode.cn/)官方主推的框架PasteForm,不仅配套了项目模板,还提供了PasteBuilder代码生成器,今日要介绍的是提供的另外一个帮助函数PasteFormHelper,主要的作用就是标记特性和反序列化Dto用!

如何引入

dotnet add package PasteFormHelper --version 24.11.8

应该是要把这个包添加到XXX.Application.Contracts子项目中!

PasteFormHelper内容

在这里插入图片描述
如上图所示,PasteBuilderHelper里面主要就是解析Dto的文档和特性使用的!
下方的特性列表主要是为了减少输入错误!

API案例

比如项目模板中的UserInfo
在这里插入图片描述

注意事宜

使用PasteFormHelper需要符合一些条件

框架

需要使用贴代码提供的框架,或者是ABPvNext的,大概如下
在这里插入图片描述
如上图,需要有这5个子项目,缺少其中某一个也是可以的

存放规范

表对应的数据Model存放于某一个文件夹下,比如XXXDomain.usersmodels/xxx.cs
在这里插入图片描述

枚举类支持

枚举类的对象要存放于XXX.Domain子项目或者XXX.Application.Contracts子项目中,否则枚举的注释读取不了

在这里插入图片描述

数据继承层级

查看最新的代码,层级不能超过6层,且除了基本类型,其他的都应该在当前项目中,比如你可以这么写
XXXDto:XXXListDto:XXXShort

        /// <summary>
        /// 递归读取文档
        /// </summary>
        /// <param name="_classType"></param>
        /// <param name="_property"></param>
        /// <param name="xmlDoc"></param>
        /// <param name="_cpro"></param>
        /// <param name="_index"></param>
        private static void ReadSummary(Type _classType, PropertyInfo _property, XDocument xmlDoc, VoloModelProperty _cpro, int _index = 0)
        {
            var _pro_full = $"P:{_classType.FullName}.{_property.Name}";
            //Console.WriteLine(_pro_full);
            XElement typeElement = xmlDoc.Descendants("member").FirstOrDefault(member => member.Attribute("name")?.Value == _pro_full);
            if (typeElement != null)
            {
                var _summary = typeElement.Element("summary")?.Value;
                if (!String.IsNullOrEmpty(_summary))
                {
                    _summary = _summary.Replace("\r\n", "").Trim();
                    _cpro.Summary = _summary;
                }
            }
            else
            {
                if (_property.DeclaringType != null && _index < 6)
                {
                    var _declartype = _property.DeclaringType;
                    if (_declartype.FullName != _classType.FullName)
                    {
                        var _zindex = _index++;
                        ReadSummary(_declartype, _property, xmlDoc, _cpro, _zindex);
                    }
                }
            }
        }

更多特性见

贴代码PasteForm专题介绍

我们下期见!


http://www.kler.cn/a/412820.html

相关文章:

  • Android --- Kotlin,Fragment 怎么使用 ObserveForever 监听 Livedata
  • RabbitMQ的预取值详解
  • 渗透测试笔记—window基础
  • Rust语言俄罗斯方块(漂亮的界面案例+详细的代码解说+完美运行)
  • 深入理解 Spring Boot 的 WebApplicationType
  • 民锋视角:数据分析如何助力金融决策
  • go clean -modcache命令清理缓存
  • 使用 Tkinter 创建一个简单的 GUI 应用程序来合并视频和音频文件
  • 线程与进程的个人理解
  • 安全设备-日志审计-规则配置
  • JavaEE进阶-----mybatis操作数据库(新手教程)
  • 40分钟学 Go 语言高并发:【实战】并发安全的配置管理器
  • 文本处理之sed
  • 机器学习基础--基于线性回归房价预测
  • 【好玩的经典游戏】Docker环境下部署贪吃蛇网页小游戏(二)
  • uniapp运行时,同步资源失败,未得到同步资源的授权,请停止运行后重新运行,并注意手机上的授权提示。
  • 钟睒睒的“傲慢与偏见”
  • vue3表单输入相关修饰符使用
  • AI写论文指令
  • Java全栈:超市购物系统实现
  • html+css+js打字游戏网页
  • 每日十题八股-2024年11月27日
  • 有什么好用的 tcp 性能测试工具 ?
  • 聚观早报 | 知乎Q3营收;华为Mate 70系列发布
  • C语言实例_12之求一正整数分解质因数
  • 贪心-区间问题——acwing