<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<appSettings>
<!--实际生产中这里就是固定的配置方式(前面是实体属性,后面是约定验证方式)-->
<add key="Setting1" value="name|sex|address,Account"/>
<add key="Setting2" value="cardID|phone,Identity"/>
</appSettings>
</configuration>

  

namespace ConsoleApplication1
{
public class User
{ public string name { get; set; }
public int age { get; set; }
public string address { get; set; }
public string cardID { get; set; }
public string phone { get; set; } } public class VerfiyInfo
{
public string info { get; set; }
public string method { get; set; }
}
class Program
{
static void Main(string[] args)
{ User user = new User()
{
name = "Tom",
address = "New York",
age = 20,
cardID = "3203821922222",
phone = "18014925250"
};
VerfiyInfo verfiyInfo = GetVerfiy<VerfiyInfo>(user); Console.WriteLine(verfiyInfo.info + ":" + verfiyInfo.method);
Console.ReadKey();
}
public static T GetVerfiy<T>(User model)
{
string appSetting = System.Configuration.ConfigurationSettings.AppSettings["Setting1"];
if (string.IsNullOrEmpty(appSetting))
{
throw new Exception("无配置信息");
}
string[] strA = appSetting.Split(',');
string strB = strA[0];
string result = string.Empty;
Type tp = model.GetType();
PropertyInfo[] pros = tp.GetProperties();
foreach (PropertyInfo pro in pros)
{
strB = strB.Replace(pro.Name, pro.GetValue(model).ToString()); }
string strJson = "{\"info\":\"" + strB + "\",\"method\":\"" + strA[1] + "\"}";
T rModel = JsonConvert.DeserializeObject<T>(strJson);
return rModel; }
}
}

  

Type反射遍历类的属性的更多相关文章

  1. java利用反射获取类的属性及类型

    java利用反射获取类的属性及类型. import java.lang.reflect.Field; import java.math.BigDecimal; import java.util.Map ...

  2. c#自定义ORM框架---(泛型&反射&实体类扩展属性<附带通用增、删、查、改>)

    该教材主要是运用到泛型.反射和实体类扩展属性 步骤一.建立扩展属性类 实体类扩展属性要继承Attribute基类完成 [AttributeUsage(AttributeTargets.Property ...

  3. Java反射学习-1 - 反射获取类的属性,方法,构造器

    新建一个Person类 package cn.tx.reflect; /** * 注解初步了解 * @author Administrator * */ public class Person { p ...

  4. C# 遍历类的属性并取出值

    最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精    今天有点胡思乱想,想遍历MVC Model的属性并 ...

  5. java 反射获取类的属性 类型 名称和值

    /** * 获取属性类型(type),属性名(name),属性值(value)的map组成的list * */ private List getFiledsInfo(Object o){ Field[ ...

  6. C#遍历类的属性,然后给其赋值

    public class PP { public string a { get; set; } public string b { get; set; } public string c { get; ...

  7. 【转】java遍历实体类的属性和数据类型以及属性值

    和同学接了个外包的活,由于项目中很多地方要用到poi导出excel,而每次导出都要写很多相同的代码,因为poi的cell.setCellValue();每次设置的都是不同实体bean的属性值,导致代码 ...

  8. C#利用反射,遍历获得一个类的所有属性名,以及该类的实例的所有属性的值

    转自goldeneyezhang原文 C#利用反射,遍历获得一个类的所有属性名,以及该类的实例的所有属性的值 C#利用反射,遍历获得一个类的所有属性名,以及该类的实例的所有属性的值总结: 对应某个类的 ...

  9. .NET C#利用反射获取类文件以及其中的方法&属性 并获取类及方法上的特性

    了解C#特性类并声明我们自己的特性类[AttributeTest]代码如下 using System; namespace AttributeTest { /* 特性说明 特性本质是一个继承和使用了系 ...

随机推荐

  1. 这些喜闻乐见的Java面试知识点,你都掌握了吗?

    最近分享了一些有关学习方法和经验的文章,得到了很多读者的反馈,恰巧大家在昨天推文中的投票里一直选择了"Java基础的复习方法"这一项,那么今天我们就谈谈这方面的内容吧. 其实对于J ...

  2. 安装mistral

    1.安装mistral安装包 yum -y install openstack-mistral-api.noarch openstack-mistral-engine.noarch openstack ...

  3. 整合AD RMS与EX 2010。

    1.点击开始菜单, 选择所有程 序,展开 Mi cros oft  Excha nge  Server  2010 ,打开Excha nge Ma na gement Cons ol e,选择收件人配 ...

  4. springboot使用elasticsearch的客户端操作eslaticsearch

    一  ES客户端 ES提供多种不同的客户端: 1.TransportClient ES提供的传统客户端,官方计划8.0版本删除此客户端. 2.RestClient RestClient是官方推荐使用的 ...

  5. java_guide_9-30_并发相关

    3.1 CopyOnWriteArrayList 简介 public class CopyOnWriteArrayList<E> extends Object implements Lis ...

  6. 关于Npoi+excel文件读取,修改文件内容的处理方式

    因最近有需求场景,实现对文件的读写操作,又不单独生成新的文件,对于源文件的修改,做了一个简单实现,如下↓ // 要操作的excel文件路径 string fileName = Server.MapPa ...

  7. python脚本调用外部程序的若干种方式以及利弊

    脚本执行外部程序的常用几种方式: # os.popen(path)# subprocess.run(cmd,shell=True)# subprocess.check_call(cmd,shell = ...

  8. python 小数据池,代码块, is == 深入剖析

    python小数据池,代码块的最详细.深入剖析   一. id is == 二. 代码块 三. 小数据池 四. 总结 一,id,is,== 在Python中,id是什么?id是内存地址,那就有人问了, ...

  9. better-scroll踩坑合集

    better-scroll踩坑合集:https://www.jianshu.com/p/6338a8033281

  10. springboot系列:使用缓存

    前言:springboot已经为我们实现了抽象的api接口,因此当我们使用不同的缓存时,只是配置有可能有点区别(比如ehcache和Redis),但是在程序中使用缓存的方法是一样的. 1.spring ...