using System.Reflection; using System.Text.RegularExpressions; namespace Utils { /// /// 帮助工具 /// /// public class RandomTools where T : class, new() { #region --------------初始化数据成员 private static string RegexStr = ""; private static readonly Random Random = new(); private static readonly int[] Monday = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; private static readonly string StrAct = "abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"; private static readonly string StrPwd = "abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ_~`,.;:>", "|", "!*!", "feinibuke", "Min", "Zher", "IChs", "RTis", "&Per", "LIo)", "(IUty", "Y?Y>", "", "Sh?hS", "", "S", ".", "@", "One", "123", "wuwo", "why?", "niuHEng", "kebi", "Love", "wait。。", "Meik", "Kara", "Uzi", "SSS", "$", "🗡", "心%", "100%", "buZai", "Cwei", ">>ta", "&&R", "非!", "OoO", "(*^_^*)", "~去也", "~在此", "~浮生", "de Nan人", "EMO", "真的Xie", "quangQ", "栓Q", "芭比q了", "xiDog", "西狗", "修沟", "<( ̄︶ ̄)↗[GO!]", "lei", "Meng※", "shifei", "旧Meng", "wuSouWei" }; private static readonly string[] TelStarts = "134,135,136,137,138,139,150,151,152,157,158,159,130,131,132,155,156,133,153,180,181,182,183,185,186,176,187,188,189,177,178".Split(','); private static readonly string[] EmailStr = { "@qq.com", "@163.com", "@126.com", "@yahoo.cn", "@sina.com", "@shouhu.com", "@outlook.com", "@gmail.com", "@163.net", "@263.net", "@live.com" }; private static readonly string[] Province = { "河北省", "山西省", "辽宁省", "吉林省", "黑龙江省", "江苏省", "浙江省", "安徽省", "福建省", "江西省", "山东省", "河南省", "湖北省", "湖南省", "广东省", "海南省", "四川省", "贵州省", "云南省", "陕西省", "甘肃省", "青海省", "台湾省", }; private static readonly string[] City = { "安康市", "安庆市", "安顺市", "安阳市", "鞍山市", "巴彦淖尔市", "巴中市", "白城市", "白山市", "白银市", "百色市", "蚌埠市", "包头市", "宝鸡市", "保定市", "保山市", "北海市", "本溪市", "滨州市", "沧州市", "昌都地区", "长春市", "长沙市", "长治市", "常德市", "常州市", "巢湖市", "朝阳市", "潮州市", "郴州市", "成都市", "承德市", "池州市", "赤峰市", "崇左市", "滁州市", "达州市", "大连市", "大庆市", "大同市", "丹东市", "德阳市", "德州市", "定西市", "东莞市", "东营市", "鄂尔多斯市", "鄂州市", "防城港市", "佛山市", "福州市", "抚顺市", "抚州市", "阜新市", "阜阳市", "甘南州", "赣州市", "固原市", "广安市", "广元市", "广州市", "贵港市", "贵阳市", "桂林市", "哈尔滨市", "哈密地区", "海北藏族自治州", "海东地区", "海口市", "邯郸市", "汉中市", "杭州市", "毫州市", "合肥市", "河池市", "河源市", "菏泽市", "贺州市", "鹤壁市", "鹤岗市", "黑河市", "衡水市", "衡阳市", "呼和浩特市", "呼伦贝尔市", "湖州市", "葫芦岛市", "怀化市", "淮安市", "淮北市", "淮南市", "黄冈市", "黄山市", "黄石市", "惠州市", "鸡西市", "吉安市", "吉林市", "济南市", "济宁市", "佳木斯市", "嘉兴市", "嘉峪关市", "江门市", "焦作市", "揭阳市", "金昌市", "金华市", "锦州市", "晋城市", "晋中市", "荆门市", "荆州市", "景德镇市", "九江市", "酒泉市", "开封市", "克拉玛依市", "昆明市", "拉萨市", "来宾市", "莱芜市", "兰州市", "廊坊市", "乐山市", "丽江市", "丽水市", "连云港市", "辽阳市", "辽源市", "聊城市", "临沧市", "临汾市", "临沂市", "柳州市", "六安市", "六盘水市", "龙岩市", "陇南市", "娄底市", "泸州市", "吕梁市", "洛阳市", "漯河市", "马鞍山市", "茂名市", "眉山市", "梅州市", "绵阳市", "牡丹江市", "内江市", "南昌市", "南充市", "南京市", "南宁市", "南平市", "南通市", "南阳市", "宁波市", "宁德市", "攀枝花市", "盘锦市", "平顶山市", "平凉市", "萍乡市", "莆田市", "濮阳市", "普洱市", "七台河市", "齐齐哈尔市", "钦州市", "秦皇岛市", "青岛市", "清远市", "庆阳市", "曲靖市", "衢州市", "泉州市", "日照市", "三门峡市", "三明市", "三亚市", "汕头市", "汕尾市", "商洛市", "商丘市", "上饶市", "韶关市", "邵阳市", "绍兴市", "深圳市", "沈阳市", "十堰市", "石家庄市", "石嘴山市", "双鸭山市", "朔州市", "四平市", "松原市", "苏州市", "宿迁市", "宿州市", "绥化市", "随州市", "遂宁市", "台州市", "太原市", "泰安市", "泰州市", "唐山市", "天水市", "铁岭市", "通化市", "通辽市", "铜川市", "铜陵市", "铜仁市", "吐鲁番地区", "威海市", "潍坊市", "渭南市", "温州市", "乌海市", "乌兰察布市", "乌鲁木齐市", "无锡市", "吴忠市", "芜湖市", "梧州市", "武汉市", "武威市", "西安市", "西宁市", "锡林郭勒盟", "厦门市", "咸宁市", "咸阳市", "湘潭市", "襄樊市", "孝感市", "忻州市", "新乡市", "新余市", "信阳市", "兴安盟", "邢台市", "徐州市", "许昌市", "宣城市", "雅安市", "烟台市", "延安市", "盐城市", "扬州市", "阳江市", "阳泉市", "伊春市", "伊犁哈萨克自治州", "宜宾市", "宜昌市", "宜春市", "益阳市", "银川市", "鹰潭市", "营口市", "永州市", "榆林市", "玉林市", "玉溪市", "岳阳市", "云浮市", "运城市", "枣庄市", "湛江市", "张家界市", "张家口市", "张掖市", "漳州市", "昭通市", "肇庆市", "镇江市", "郑州市", "中山市", "中卫市", "舟山市", "周口市", "株洲市", "珠海市", "驻马店市", "资阳市", "淄博市", "自贡市", "遵义市", }; private static readonly string[] Area = { "伊春区", "带岭区", "南岔区", "金山屯区", "西林区", "美溪区", "乌马河区", "翠峦区", "友好区", "新青区", "上甘岭区", "五营区", "红星区", "汤旺河区", "乌伊岭区", "榆次区" }; private static readonly string[] Road = { "爱国路", "安边路", "安波路", "安德路", "安汾路", "安福路", "安国路", "安化路", "安澜路", "安龙路", "安仁路", "安顺路", "安亭路", "安图路", "安业路", "安义路", "安远路", "鞍山路", "鞍山支路", "澳门路", "八一路", "巴林路", "白城路", "白城南路", "白渡路", "白渡桥", "白兰路", "白水路", "白玉路", "百安路(方泰镇)", "百官街", "百花街", "百色路", "板泉路", "半淞园路", "包头路", "包头南路", "宝安公路", "宝安路", "宝昌路", "宝联路", "宝林路", "宝祁路", "宝山路", "宝通路", "宝杨路", "宝源路", "保德路", "保定路", "保屯路", "保屯路", "北艾路", }; private static readonly string[] Home = { "金色家园", "耀江花园", "阳光翠竹苑", "东新大厦", "溢盈河畔别墅", "真新六街坊", "和亭佳苑", "协通公寓", "博泰新苑", "菊园五街坊", "住友嘉馨名园", "复华城市花园", "爱里舍花园" }; private static readonly string Xin = "赵 钱 孙 李 周 吴 郑 王 冯 陈 褚 卫 蒋 沈 韩 杨 朱 秦 " + "尤 许 何 吕 施 张 孔 曹 严 华 金 魏 陶 姜 戚 谢 邹 喻 柏 水 窦 章 云 苏 潘 葛 奚 范 彭 郎 鲁 韦 昌 马 苗 " + "凤 花 方 俞 任 袁 柳 酆 鲍 史 唐 费 廉 岑 薛 雷 贺 倪 汤 滕 殷 罗 毕 郝 邬 安 常 乐 " + "于 时 傅 皮 卞 齐 康 伍 余 元 卜 顾 孟 平 黄 和 穆 萧 尹 姚 邵 湛 汪 祁 毛 禹 狄 米 " + "贝 明 臧 计 伏 成 戴 谈 宋 茅 庞 熊 纪 舒 屈 项 祝 董 梁 杜 阮 蓝 闵 席 季 麻 强 贾 " + "路 娄 危 江 童 颜 郭 梅 盛 林 刁 钟 徐 邱 骆 高 夏 蔡 田 樊 胡 凌 霍 虞 万 支 柯 昝 " + "管 卢 莫 经 房 裘 缪 干 解 应 宗 丁 宣 贲 邓 郁 单 杭 洪 包 诸 左 石 崔 吉 钮 龚 程 " + "嵇 邢 滑 裴 陆 荣 翁 荀 羊 於 惠 甄 曲 家 封 芮 羿 储 靳 汲 邴 糜 松 井 段 富 巫 乌 " + "焦 巴 弓 牧 隗 山 谷 车 侯 宓 蓬 全 郗 班 仰 秋 仲 伊 宫 宁 仇 栾 暴 甘 钭 厉 戎 祖 " + "武 符 刘 景 詹 束 龙 叶 幸 司 韶 郜 黎 蓟 薄 印 宿 白 怀 蒲 台 丛 鄂 索 咸 籍 赖 卓 " + "蔺 屠 蒙 池 乔 阴 佟 胥 能 苍 双 闻 莘 党 翟 谭 贡 劳 逄 姬 申 扶 堵 冉 宰 郦 雍 却 " + "璩 桑 桂 濮 牛 寿 通 边 扈 燕 冀 郏 浦 尚 农 温 别 庄 晏 柴 瞿 阎 充 慕 连 茹 习 宦 " + "艾 鱼 容 向 古 易 慎 戈 廖 庚 终 暨 居 衡 步 都 耿 满 弘 匡 国 文 寇 广 禄 阙 东 殴 " + "殳 沃 利 蔚 越 夔 隆 师 巩 厍 聂 晁 勾 敖 融 冷 訾 辛 阚 那 简 饶 空 曾 毋 沙 乜 养 " + "鞠 须 丰 巢 关 蒯 相 查 后 荆 红 游 竺 权 逯 盖 益 桓 公 万俟 司马 上官 欧阳 夏侯 诸葛 " + "闻人 东方 赫连 皇甫 尉迟 公羊 澹台 公冶 宗政 濮阳 淳于 单于 太叔 申屠 公孙 仲孙 轩辕 " + "令狐 钟离 宇文 长孙 慕容 鲜于 闾丘 司徒 司空"; private static readonly string Min = "媛 瑾 嘉 春 璐 飘 月 卿 妍 希 娣 颖 莺 艳 慧 倩 雁 惠 兰 薇 婉 真 叶 雅 淑" + " 昭 洁 茗 琴 荣 翠 菊 蕊 蓓 娴 苑 萍 妹 悦 燕 菁 馨 香 园 环 瑞 锦 爽 珍 融 云 莎 咏" + " 璧 霞 娅 露 欣 梦 羽 滢 韵 婵 眉 澜 冰 纯 君 娜 凡 聪 彩 志 玮 峰 庆 善 煊 廷 炅 斌 " + "健 宁 林 炎 友 掣 成 旲 锦 悦 宇 为 璟 涛 耀 清 皓 凌 邦 纪 殿 语 瑄 舒 风 泽 珂 昭 " + "策 绍 智 琛 沛 章 曦 合 钊 学 齐 致 雄 栋 睿 强 向 鹏 旻 隆 璨 利 昊 思 胜 俊 伦 璇" + " 岩 涵 晔 云 荣 平 时 媚 媛 嫔 嫣 嫱 安 宛 宜 宝 容 巧 希 彤 彩 心 忆 念 怀 怜 思 怡" + " 情 惠 慧 敏 旭 春 晴 曼 月 梅 梦 楠 檀 欢 欣 歆 毓 水 洁 涵 淑 清 滟 滢 漪 漫 澜 灵" + " 煜 燕 玉 玥 玫 环 玲 珂 珊 珍 珠 琦 琪 琬 琰 琳 琴 琼 瑗 瑛 瑜 瑶 瑾 璇 璐 璟 白 盈 " + "盼 碧 秀 筠 红 绮 美 翠 艳 芃 芊 芝 芬 芮 芯 芳 芷 芸 苑 若 苹 茗 茜 茵 茹 荔 荭 荷 莉" + " 莎 莲 莹 菁 菡 菲 萍 萱 蓉 蓓 蔓 蕊 蕾 薇 诗 语 贞 采 钰 银 雅 雨 雪 雯 霏 霖 霜 霞 露" + " 青 靖 静 音 韵 颖 颜 香 馨 黛 丹 枫 妙 妍 彤 祖 勉 誉 浅 智 涛 楷 青 致 望 秀 豫 尊 标" + " 俊 飞 泽 康 信 廉 宏 然 迪 晋 陌 宇 文 戈 兼 暖 布 潭 函 白初 寺念 凌寒 乔熙 北城 九黎" + " 诗蓝 倾璃 残霜 月如 可青 琼恨 尘世 流璃 书萱 染栀 沉湘 落羽 巧琴 若初 蝶怜 初若 曼云 " + "珞璎 冰妍 雪溪 弦如 悯溯 倾城 慕曼 辛葶 陌白 月桐 飞蕾 栩瑾 陌噬 慕青 芷凝 厌离 墨语 若心" + " 尔寒 玉韵 正文 飞龙 骏逸 德泽 文石 寅骏 阳夏 运升 智明 德曜 高韵 鸿宝 奇文 宇达 博明 鸣环" + "青槐 如霜 依漪 樱翎 姣汶 君真 夏青 蕴偲 瑛蔓 晓梅 艺昕 雯萱 娣姿 云菲 忆初 衬心 诠释 尘封 " + "奔赴 心鸢 晴栀 堇年 青柠 埋葬 夏墨 随风 屿暖 深邃 途往 迷离 槿城 零落 余笙 梦呓 墨凉 晨曦 " + "纪年 未央 失语 柠栀 梦巷 九离 暮雨 木兮 浅歌 沐北 惜颜 素笺 锁心 柠萌 卿歌 归期 予别 情笙"; #endregion /// /// 账号正则 /// /// 账号 /// bool public static bool CheckAct(string username) { if (string.IsNullOrEmpty(username)) { return false; } RegexStr = "^[a-zA-Z]\\w&{2,19}&"; return Regex.IsMatch(username, RegexStr); } /// /// 密码正则 /// /// 密码 /// bool public static bool CheckPwd(string pwd) { if (string.IsNullOrEmpty(pwd)) { return false; } RegexStr = "^[0-9]{3,20}&"; return Regex.IsMatch(pwd, RegexStr); // //【编号】 【正则表达式】 【作用】 // 【1】 \d{ 15}|\d{ 18} 验证身份证号码(15位或18位) // 【2】 \d{ 3}-\d{ 8}|\d{ 4}-\d{ 7} 验证国内的固定电话(区号有3位或4位,并在区号和电话号码之 间加上-) // 【3】 ^[1 - 9]\d *$ 验证字符串中都是正整数 // 【4】 ^ -[1 - 9]\d *$ 验证字符串中都是负整数 // 【5】 ^ -?[1 - 9]\d *$ 验证字符串中是整数 // 【6】 ^[A - Za - z] +$ 验证字符串中全是字母 // 【7】 A[A - Za - z0 - 9] +$ 验证字符串由数字和字母构成 // 【8】 [\u4e00 - \u9fa5] 匹配字符串中的中文 // 【9】 [^\x00 -\xff] 匹配字符串中的双字节字符(包括汉字) } /// /// 字符串拼接 /// /// 字符串1 /// 字符串2 /// string public static string? StrDeal(string str1, string str2) { if (str1 == null || str2 == null) { NullException(); } //@string.Append(str1);@string.Append(str2); 应该使用StringBuilder类进行字符拼接转换操作 因为 StringBuilder是变量 String 是常量 return checked(str1 == null ? str1 == "" ? "" : "" : str1 + str2 == null ? str2 == "" ? "" : "" : str2); } /// /// 字符串数组转int数组 /// /// 字符串数组 /// int[] /// 错误信息:参数为空 public static int[] StrDeal(string[] strval) { if (strval.Length == 0 && strval == null) { NullException(); } return Array.ConvertAll(strval, int.Parse); } /// /// 校验输入的内容是否为邮箱 /// /// 输入字符串 /// bool public static bool CheckEmail(string inputData) { Regex RegEmail = new("^[\\w-]+@[\\w-]+\\.(com|net|org|edu|mil|tv|biz|info)$");//w 英文字母或数字的字符串,和 [a-zA-Z0-9] 语法一样 Match m = RegEmail.Match(inputData); return m.Success; } /// /// 生成随机年龄 /// /// int public static int RdAge() { return Random.Next(150); } /// /// 生成随机IP /// /// string public static string RdIP() { var s = ""; for (int i = 0; i <= 3; i++) { var q = Random.Next(0, 255).ToString(); if (i < 3) { s += (q + ".").ToString(); } else { s += q.ToString(); } } var zz = Regex.IsMatch(s, "^((25[0-5]|2[0-4]\\d|((1\\d{2})|([1-9]?\\d)))\\.){3}(25[0-5]|2[0-4]\\d|((1\\d{2})|([1-9]?\\d)))$"); return zz == true ? s : ""; } /// /// 生成随机金钱 /// /// string public static double RdMoney() { int max = Random.Next(2, 11); string money = ""; for (int i = 0; i < max; i++) { money += Random.Next(1, 7); } long themoney = Convert.ToInt64(money); double result = themoney + Math.Round(Random.NextDouble(), 2); return result; } /// /// 生成随机昵称 /// /// string public static string RdNick() { return StrNick[Random.Next(StrNick.Length - 1)] + StrName[Random.Next(StrName.Length - 1)] + StrAct[Random.Next(StrAct.Length)].ToString(); } /// /// 生成随机电话 /// /// string public static long RdTel() { int index = Random.Next(0, TelStarts.Length - 1); string first = TelStarts[index]; string second = (Random.Next(100, 888) + 10000).ToString()[1..]; string thrid = (Random.Next(1, 9100) + 10000).ToString()[1..]; return Convert.ToInt64(first + second + thrid); } /// /// 生成随机邮箱 /// /// string public static string RdEmail() { string strs = ""; int Rdlen = Random.Next(7, 11); for (int i = 0; i < Rdlen; i++) { strs += StrAct[Random.Next(StrAct.Length)].ToString(); } return strs += EmailStr[Random.Next(EmailStr.Length - 1)].ToString(); } /// /// 生成随机账号 /// /// string public static string RdAct() { string str = ""; for (int i = 0; i < 14; i++) { str += StrAct[Random.Next(StrAct.Length)].ToString(); } return str; } /// /// 生成随机密码 /// /// string public static string RdPwd() { string str = ""; for (int i = 0; i < 18; i++) { str += StrPwd[Random.Next(StrPwd.Length)].ToString(); } return str; } /// /// 生成随机姓名 /// /// string public static string RdName() { string[] x = Xin.Split(' '); string[] m = Min.Split(' '); return (x[Random.Next(x.Length - 1)] + m[Random.Next(m.Length - 1)]).ToString(); } /// /// 生成1-6位随机整数 /// /// public static int RdNum6() { string str = ""; for (int i = 0; i < 6; i++) { str += Random.Next(0, 9); } return Convert.ToInt32(str); } /// /// 生成随机生日 /// /// DateTime public static DateTime RdBirth() { DateTime NowTime = DateTime.Now; int Amonth = Random.Next(1, 12); int Year = NowTime.Year - RdAge(); int Month = NowTime.Month; int Day = 0; int Hour = Random.Next(0, 23); int Minute = Random.Next(0, 59); int Second = Random.Next(0, 59); if ((Year % 4 == 0 && Year % 100 != 0) || Year % 400 == 0) { for (int i = 1; i < Monday.Length; i++) { if (Amonth == i) { Day = Random.Next(1, Monday[i]); break; } else { continue; } } } else { for (int i = 1; i < Monday.Length; i++) { if ((Amonth = i) == 2) { Day = Random.Next(1, Monday[i] - 1); break; } if (Amonth == i) { Day = Random.Next(1, Monday[i]); break; } else { continue; } } } return new DateTime(Year, Month, Day, Hour, Minute, Second); } /// /// 生成随机性别 /// /// public static string RdSex() { return Random.Next(0, 2) == 1 ? "男" : "女"; } /// /// 生成随机ID /// /// public static string RdID() { return Guid.NewGuid().ToString().Replace("-", "").ToUpper().Trim(); } /// /// 生成随机学校 /// /// public static string RdSchool() { return StrSchool[Random.Next(0, StrSchool.Length - 1)]; } /// /// 生成随机网址 /// /// public static string RdWebNet() { string web = "http://www."; for (int i = 0; i < 8; i++) { web += StrAct[Random.Next(StrAct.Length)].ToString(); } return web += ".com"; } /// /// 生成随机状态 /// /// public static int RdStatus() { return Random.Next(-1, 4); } /// /// 生成随机修改创建时间 /// /// public static DateTime RdTime() { return DateTime.UtcNow.AddDays(Convert.ToDouble(Random.Next(-365, 0))); } /// /// 生成随机地址 /// /// string public static string RdAddress() { int RandomProvinceNum = Random.Next(Province.Length); int RandomCityNum = Random.Next(City.Length); int RandomAreaNum = Random.Next(Area.Length); int RandomRoadNum = Random.Next(Road.Length); int RandomHomeNum = Random.Next(Home.Length); int Num = Random.Next(200); return Province[RandomProvinceNum] + City[RandomCityNum] + Area[RandomAreaNum] + Road[RandomRoadNum] + Num + "号" + Home[RandomHomeNum]; } /// /// 生成随机人物 /// /// 参数值[默认生成数量:1],可自定义编译 /// List public static List RdObj(int val = 1) { List ObjList = new(); ObjList.Clear(); for (int i = 0; i < val; i++) { ObjList.Add(new { ID = RdID(), Nick = RdNick(), Act = RdAct(), Pwd = RdPwd(), Name = RdName(), Sex = RdSex(), Age = RdAge(), Birth = RdBirth(), Phone = RdTel(), Address = RdAddress(), Email = RdEmail(), School = RdSchool(), Education = "", Company = "", IP = RdIP(), Code = RdID(), Money = RdMoney(), State = RdStatus(), IsDel = RdStatus(), Desc = "System 随机人物", WebNet = RdWebNet(), ProjectUrl = "", CreateTime = RdTime(), UpdateTime = RdTime(), Token = "" } ); } return ObjList; } /// /// 生成随机对象 传入什么类型 输出什么类型的对象 可深层遍历 此方法还没有写完 /// /// /// /// public static List RdObj(T t, int val = 1) { var type = t.GetType(); List Obj = new(); PropertyInfo[] member = type.GetProperties(); for (int j = 0; j < val; j++) { t = new T(); for (int i = 0; i < member.Length; i++) { PropertyInfo? prop = t.GetType()?.GetProperty(member[i].Name); if (member[i].PropertyType.Name == "String") { if (member[i].Name.ToLower().Contains("id")) { prop?.SetValue(t, RdID()); continue; } if (member[i].Name.ToLower().Contains("name")) { prop?.SetValue(t, RdName()); continue; } if (member[i].Name.ToLower().Contains("nick")) { prop?.SetValue(t, RdNick()); continue; } if (member[i].Name.ToLower().Contains("desc")) { prop?.SetValue(t, "System 测试说明" + i); continue; } if (member[i].Name.ToLower().Contains("act")) { prop?.SetValue(t, RdAct()); continue; } if (member[i].Name.ToLower().Contains("pwd")) { prop?.SetValue(t, RdPwd()); continue; } prop?.SetValue(t, "随机测试字符" + i); continue; } if (member[i].PropertyType.Name == "Int32") { if (member[i].Name.ToLower().Contains("status") || member[i].Name.ToLower().Contains("state") || member[i].Name.ToLower().Contains("isdel")) { prop?.SetValue(t, RdStatus()); } else { prop?.SetValue(t, RdNum6()); } continue; } if (member[i].PropertyType.Name == "Int8") { prop?.SetValue(t, RdStatus()); continue; } if (member[i].PropertyType.Name == "Int16") { prop?.SetValue(t, RdStatus()); continue; } if (member[i].PropertyType.Name == "Int32[]") { prop?.SetValue(t, new int[] { i }); continue; } if (member[i].PropertyType.Name == "DateTime") { prop?.SetValue(t, RdTime()); continue; } if (member[i].PropertyType.Name == "Double") { prop?.SetValue(t, RdMoney()); continue; } if (member[i].PropertyType.Name == "Decimal") { prop?.SetValue(t, RdMoney()); continue; } if (member[i].PropertyType.Name == "String[]") { prop?.SetValue(t, new string[] { "System测试字符数组" + i }); continue; } if (member[i].PropertyType.Name == "Object") { prop?.SetValue(t, RdObj()); continue; } if (member[i].PropertyType.Name == "Object[]") { prop?.SetValue(t, default); continue; } if (member[i].PropertyType.Name == "Enum") { prop?.SetValue(t, Activator.CreateInstance(member[i].PropertyType)); continue; } if (member[i].PropertyType.Name == "List`1") { prop?.SetValue(t, Activator.CreateInstance(member[i].PropertyType)); continue; } if (member[i].PropertyType.Name == "Tuple`1") { prop?.SetValue(t, default); continue; } if (member[i].PropertyType.Name == "Dictionary`2") { prop?.SetValue(t, Activator.CreateInstance(member[i].PropertyType)); continue; } else { //class 或 其他 prop?.SetValue(t, Activator.CreateInstance(member[i].PropertyType)); continue; } } Obj.Add(t); } return Obj; } /// /// 返回错误为空参数值 /// /// 参数 /// 默认抛出:"参数为空",可自定义编译 public static void NullException(string message = "参数为空") { throw new Exception(message); } /// /// 提取字符中的中文文字 /// /// 提供的字符串 /// 返回中文字符 public static string IsChinaStr(string CString) { string rt = ""; for (int i = 0; i < CString.Length; i++) { if (Convert.ToInt32(Convert.ToChar(CString.Substring(i, 1))) > Convert.ToInt32(Convert.ToChar(128))) { rt += CString.Substring(i, 1).ToString(); } } return rt; } //public enum HttpStatusCode //{ // Continue = 100, // 0x00000064 (继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。 // SwitchingProtocols = 101, // 0x00000065 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。 // Processing = 102, // 0x00000066 (处理中) // EarlyHints = 103, // 0x00000067 (预提示) // // 2xx (成功)表示成功处理了请求的状态代码。 // OK = 200, // 0x000000C8 (成功) 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。 // Created = 201, // 0x000000C9 (已创建) 请求成功并且服务器创建了新的资源。 // Accepted = 202, // 0x000000CA (已接受) 服务器已接受请求,但尚未处理。 // NonAuthoritativeInformation = 203, // 0x000000CB (非授权信息) 服务器已成功处理了请求,但返回的信息可能来自另一来源。 // NoContent = 204, // 0x000000CC (无内容) 服务器成功处理了请求,但没有返回任何内容。 // ResetContent = 205, // 0x000000CD (重置内容) 服务器成功处理了请求,但没有返回任何内容。 // PartialContent = 206, // 0x000000CE (部分内容) 服务器成功处理了部分 GET 请求。 // MultiStatus = 207, // 0x000000CF // AlreadyReported = 208, // 0x000000D0 // IMUsed = 226, // 0x000000E2 // // 3xx (重定向)表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。 // Ambiguous = 300, // 0x0000012C // MultipleChoices = 300, // 0x0000012C (多种选择)针对请求,服务器可执行多种操作。 服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。 // Moved = 301, // 0x0000012D (永久移动) 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。 // MovedPermanently = 301, // 0x0000012D (临时移动) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。 // Found = 302, // 0x0000012E (已找到) // Redirect = 302, // 0x0000012E (重定向) // RedirectMethod = 303, // 0x0000012F (重定向到方法) // SeeOther = 303, // 0x0000012F (查看其他位置) 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。 // NotModified = 304, // 0x00000130 (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。 // UseProxy = 305, // 0x00000131 (使用代理) 请求者只能使用代理访问请求的网页。 如果服务器返回此响应,还表示请求者应使用代理。 // Unused = 306, // 0x00000132 (未使用) // RedirectKeepVerb = 307, // 0x00000133 (保持动作的重定向) // TemporaryRedirect = 307, // 0x00000133 (临时重定向) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。 // PermanentRedirect = 308, // 0x00000134 (永久性重定向) // // 4xx(请求错误)这些状态代码表示请求可能出错,妨碍了服务器的处理。 // BadRequest = 400, // 0x00000190 (错误请求) 服务器不理解请求的语法。 // Unauthorized = 401, // 0x00000191 (未授权) 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。 // PaymentRequired = 402, // 0x00000192 (支付请求) // Forbidden = 403, // 0x00000193 (禁止) 服务器拒绝请求。 // NotFound = 404, // 0x00000194 (未找到) 服务器找不到请求的网页。 // MethodNotAllowed = 405, // 0x00000195 (方法禁用) 禁用请求中指定的方法。 // NotAcceptable = 406, // 0x00000196 (不接受) 无法使用请求的内容特性响应请求的网页。 // ProxyAuthenticationRequired = 407, // 0x00000197 (需要代理授权) 此状态代码与 401(未授权)类似,但指定请求者应当授权使用代理。 // RequestTimeout = 408, // 0x00000198 (请求超时) 服务器等候请求时发生超时。 // Conflict = 409, // 0x00000199 (冲突) 服务器在完成请求时发生冲突。 服务器必须在响应中包含有关冲突的信息。 // Gone = 410, // 0x0000019A (已删除) 如果请求的资源已永久删除,服务器就会返回此响应。 // LengthRequired = 411, // 0x0000019B (需要有效长度) 服务器不接受不含有效内容长度标头字段的请求。 // PreconditionFailed = 412, // 0x0000019C (未满足前提条件) 服务器未满足请求者在请求中设置的其中一个前提条件。 // RequestEntityTooLarge = 413, // 0x0000019D (请求实体过大) 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。 // RequestUriTooLong = 414, // 0x0000019E (请求的 URI 过长) 请求的 URI(通常为网址)过长,服务器无法处理。 // UnsupportedMediaType = 415, // 0x0000019F (不支持的媒体类型) 请求的格式不受请求页面的支持。 // RequestedRangeNotSatisfiable = 416, // 0x000001A0(请求范围不符合要求) 如果页面无法提供请求的范围,则服务器会返回此状态代码。 // ExpectationFailed = 417, // 0x000001A1 (未满足期望值) 服务器未满足”期望”请求标头字段的要求。 // MisdirectedRequest = 421, // 0x000001A5 (方向错误的请求) // UnprocessableEntity = 422, // 0x000001A6 (不可获得的实体) // Locked = 423, // 0x000001A7 (被锁定) // FailedDependency = 424, // 0x000001A8 (依赖注入失败) // UpgradeRequired = 426, // 0x000001AA (需要升级) // PreconditionRequired = 428, // 0x000001AC (必须满足的先决条件) // TooManyRequests = 429, // 0x000001AD (过多的请求) // RequestHeaderFieldsTooLarge = 431, // 0x000001AF (请求头字段太大) // UnavailableForLegalReasons = 451, // 0x000001C3 (由于法律原因不可用) // // 5xx(服务器错误)这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错。 // InternalServerError = 500, // 0x000001F4 (服务器内部错误) 服务器遇到错误,无法完成请求。 // NotImplemented = 501, // 0x000001F5 (尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。 // BadGateway = 502, // 0x000001F6 (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。 // ServiceUnavailable = 503, // 0x000001F7 (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。 // GatewayTimeout = 504, // 0x000001F8 (网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。 // HttpVersionNotSupported = 505, // 0x000001F9 (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。 // VariantAlsoNegotiates = 506, // 0x000001FA // InsufficientStorage = 507, // 0x000001FB (存储不足) // LoopDetected = 508, // 0x000001FC (循环检测) // NotExtended = 510, // 0x000001FE (无法扩展) // NetworkAuthenticationRequired = 511, //0x000001FF(必须的网络授权) //} } }