Newbe.ObjectVisitor 0.4.4 发布,模型验证器上线

Newbe.Claptrap 0.4.4 发布,模型验证器上线。

更新内容

完全基于表达式树的模型验证器

本版本,我们带来了基于表达式树实现的模型验证器。并实现了很多内置的验证方法。

我们罗列了与 FluentValidation 比较的情况:

Build in ValidatorsFluentValidation 9.XNewbe.ObjectVistor
NotNull✔️✔️ NotNull; class
NotEmpty✔️✔️ NotEmpty; string,enumerable
NotEqual✔️✔️ NotEqual; all
Equal✔️✔️ Equal; all
Length✔️✔️ Length; string,enumerable
MaxLength✔️✔️ MaxLength; string,enumerable
MinLength✔️✔️ MinLength; string,enumerable
Less Than✔️✔️ LessThan; number
Less Than Or Equal✔️✔️ LessThanOrEqual; number
Greater Than✔️✔️ GreaterThan; number
Greater Than Or Equal✔️✔️ GreaterThanOrEqual; number
Predicate✔️✔️ Validate; all
Regular Expression✔️✔️ MatchRegex,NotMatchRegex; string
Email✔️???? MatchRegex; string
Credit Card✔️???? MatchRegex; string
Enum✔️✔️ IsInEnum; number,string,enum
Enum Name✔️✔️ IsEnumName; string
Empty✔️✔️ Empty; string,enumerable
Null✔️✔️ Null; class
ExclusiveBetween✔️✔️ IsInRange; number,enum
InclusiveBetween✔️✔️ IsInRange; number,enum
ScalePrecision✔️✔️ ScalePrecision; number
Or✔️ Or; all
IsInSet✔️ IsInSet; all
IsNotInSet✔️ IsNotInSet; all
CanParse???? CanParse; all

FluentAPI 生成器重构的代码

我们基于 0.3 已经发布的 FluentAPI 进行了核心代码重构,现在一些特定场景下需要您指定的泛型参数更少了,但是功能没有减少,更有利您进行开发。

类似的,例如下面这个变更:

  // create a data visitor to cover sensitive data_visitor = default(UserModel).V()
-     .ForEach<UserModel, string>(x => CoverSensitiveData(x))
+     .ForEach<string>(x => CoverSensitiveData(x)).Cache();

同时支持英文与简体中文方法注释

在热心网友 EventHorizon1024 的帮助下,我们在保留英文作为原始注释的情况下,对使用简体中文 IDE 的开发者们提供了全简中的方法说明。

开发者无需特殊操作,便可以在 IDE 中直接查看到简体中文的方法注释。

如何实现的详细操作方法,开发者也可以通过以下链接借鉴使用:

https://github.com/dotnet/roslyn/issues/3371#issuecomment-737623706

开发文章站点正式上线

我们非常顺利的上线了开发文档站点:

  • http://ov.newbe.pro

  • http://cn.ov.newbe.pro 中国大陆访问更快

  • https://github.com/newbe36524/Newbe.ObjectVisitor.Docs

后续所有关于本工具包相关的文章除了在博客 https://www.newbe.pro 及相关博客公布之外,我们将会更新以上站点,丰富其中的文档。

目前,我们已经上线了几篇简单的文档:

  • 我的第一个 Object Visitor

  • 创建并缓存 Object Visitor

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/306432.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法题目中经典问题(易错点)

算法题目中经典问题.易错点 (一).二维数组的传参问题1.方法一:形参为二维数组并给定第二维长度2.方法二:形参为指向数组的指针并给出数组长度3.二维数组定义为全局变量(二).多组测试控制台数据,输入到文件结束(三).进制转换中的小问题1.使用字符串来存储,每一位(四).结构体…

dotnet core 应用是如何跑起来的 通过AppHost理解运行过程

在 dotnet 的输出路径里面&#xff0c;可以看到有一个有趣的可执行文件&#xff0c;这个可执行文件是如何在框架发布和独立发布的时候&#xff0c;找到 dotnet 程序的运行时的&#xff0c;这个可执行文件里面包含了哪些内容在回答上面的问题之前&#xff0c;请大家尝试打开 C:\…

算法题目——整数划分(HRBUST-2004)

题目链接&#xff1a;HRBUST-2004 递归法: 1.当n1时&#xff0c;此时只有1种解{1}; 2.当m1时&#xff0c;此时也只有1种解{1,1,1, … 3.当n> m时&#xff0c;要分为最大数包含m和不包含m两种情况。 ●包含m:此时就是{mx1,2…}. 其中x1x23.… n-m, 就相当于求和为n-m,最…

dotnet core 应用是如何跑起来的 通过自己写一个 dotnet host 理解运行过程

在上一篇博客是使用官方提供的 AppHost 跑起来整个 dotnet 程序。本文告诉大家在 dotnet 程序运行到托管代码之前&#xff0c;所需要的 Native 部分的逻辑。包括如何寻找 dotnet 运行时&#xff0c;如何加载运行时和框架然后跑起来业务端的 dll 文件的逻辑在上一篇博客告诉大家…

android虚线边框_Android实现代码画虚线边框背景效果

实现如下边框效果&#xff1a;虚线画效果&#xff0c;可以使用Android中的xml来做。下面话不多说&#xff0c;直接上代码&#xff1a;android:id"id/coupon_popup"android:layout_width"320dp"android:layout_height"200dp"android:layout_margi…

算法题目——多米诺骨牌问题(POJ-2663)

题目链接&#xff1a;POJ-2663 设有形状一样的多米诺牌&#xff0c;每张牌恰好覆盖棋盘上相邻的两个方格&#xff0c;即一张多米诺牌是一张 1 行 2 列或者 2 行 1 列的牌。那么&#xff0c;是否能够把 32 张多米诺牌摆放到棋盘上&#xff0c;使得任何两张多米诺牌均不重叠&…

【招聘(上海)】 坚果云 招聘Windows客户端(WPF方向)

岗位职责&#xff1a;1、负责坚果云在Windows 10平台上WPF应用的开发与维护&#xff1b;2、负责基于WPF的Windows平台核心客户端产品开发&#xff0c;维护与测试&#xff1b;3、WPF桌面应用将具备丰富的文件展示和文件管理功能&#xff0c;其中与操作系统交互&#xff0c; 复杂…

三相全桥整流电路_三相桥式全控整流电路

收稿日期:2002-04-12作者简介:陈强(1976—),男,硕士研究生1三相桥式全控整流及单相交流调压实验装置的研制陈强,杨旭,王兆安(西安交通大学电气工程学院,西安710049)摘要:本文结合具体的三相全控整流电路的研制,介绍了以国产集成芯片KJ004和KJ041为中心的触发电路的工作过程及主…

算法题目——Problem A 二进制(北邮机试)

Problem A 二进制 题目描述 32位二进制数 X ,对其进行X+1,X+3操作,并输出。注意不能忽略前导0。 输入 第一行,一个整数 T ,代表测试数据组数。接着 T 行,输入32为二进制数输出对每组测试数据。 输出 两行,第一行为X+1,第二行为X+3. 测试样例 输入 2 00000000000000000000…

merge函数_c语言中的merge函数

展开全部merge()是C标准库的函数&#xff0c;主要实现函数的排序和合并&#xff0c;不仅仅是合并&#xff0c;具体要求参e5a48de588b63231313335323631343130323136353331333431373261照标准库。#include"stdafx.h"#include#include#include#includeusingnamespacest…

算法题目——求众数

在c中有两个关联容器&#xff0c; 第一种是map&#xff0c;内部是按照key排序的&#xff0c;从小到大 第二种是unordered_map&#xff0c;容器内部是无序的&#xff0c;使用hash组织内容的。 #include<iostream> #include<map> #include<algorithm> using n…

2020武汉dotNET俱乐部分享交流会圆满结束

经过长达2个多月的准备&#xff0c;终于在12月5日圆满的举行了武汉首次dotNET俱乐部线下分享交流活动。我们一共精心准备了3个目前比较热门的主题&#xff0c;分别如下&#xff1a;Jason分享的《ABP开发框架的扩展应用》Leo分享的《基于Kubernetes的DevOps平台应用》Eleven分享…

r语言remarkdown展示图_R语言—自动报告Markdown笔记

一句话介绍&#xff1a;Markdown是一种轻量级标记语言&#xff0c;内容是代码与文本的混合&#xff0c;类似HTML,但语法比HTML简单。&、比如&#xff1a;如果你写&#xff1a; 4<5 ,Markdown将会把他转换为&#xff1a; 4<5换行符&#xff1a;在Markdown中依然使用&a…

算法——常用的数据结构/模板/基础知识

常用的数据结构/模板/基础知识(一)c——优先队列(priority_queue)最大堆和最小堆的写法(二)c中的全排列函数next_permutation()(三)迭代器的使用(四)数学知识数列求和(五)求最大公约数和最小公倍数(六)将数值型数据转化为string 类型(一)c——优先队列(priority_queue) 最大堆…

对 精致码农大佬 说的 Task.Run 会存在 内存泄漏 的思考

一&#xff1a;背景 1. 讲故事这段时间项目延期&#xff0c;加班比较厉害&#xff0c;博客就稍微停了停&#xff0c;不过还是得持续的技术输出呀&#xff01;园子里最近挺热闹的&#xff0c;精致码农大佬分享了三篇文章&#xff1a;为什么要小心使用 Task.Run [https://www.c…

算法题目——爬楼梯(动态规划)

题目链接:70.爬楼梯 类似题目:1646.获取生成数组中最大值 本题大家如果没有接触过的话,会感觉比较难,多举几个例子,就可以发现其规律。 爬到第一层楼梯有一种方法,爬到二层楼梯有两种方法。 那么第一层楼梯再跨两步就到第三层 ,第二层楼梯再跨一步就到第三层。 所以到…

jpi多表联查_数据库两表联查、多表联查,多重联查

表连接查询【小编用的是Oracle数据库&#xff0c;Oracle数据库区分表名与字段名的大小写&#xff0c;所以大家进行查询的时候记得注意双引号哟~】有表表名&#xff1a;AAA 字段&#xff1a; id name tag表名&#xff1a;BBB 字段&#xff1a; id ban qq表名&#xff1a;AABB字段…

GraphQL:从头开始

GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时。GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述&#xff0c;使得客户端能够准确地获得它需要的数据&#xff0c;而且没有任何冗余&#xff0c;也让 API 更容易地随着时间推移而演进&#xff0c…

iar 看时序_IAR 硬件仿真查看运行时间

最近做STM8的项目&#xff0c;IDE从Keil变成IAR非常不习惯&#xff0c;就像用惯VS用回VC一样。调试软件延时函数&#xff0c;想看一下运行效果&#xff0c;竟然无从下手(Keil有一个查看运行时间的窗口)&#xff0c;网上都是用Simulator软仿真的查看&#xff0c;换成STLINK硬仿真…

算法题目——使用最小花费爬楼梯(动态规划)

题目链接:746.使用最小花费爬楼梯 方法:动态规划 假设数组cost的长度为n,则n个阶梯分别对应下标0到n- 1,楼层顶部对应下标n,问题等价于计算达到下标n的最小花费。可以通过动态规划求解。 创建长度为n + 1的数组dp,中dp[i] 表示达到下标i的最小花费。 于可以选择下标0或1作…