反射测试
来源:互联网 发布:ubuntu访问网络文件夹 编辑:程序博客网 时间:2024/05/16 01:03
样本:
public class PrimaryKeyAttribute : Attribute { } public class DbColumnAttribute : Attribute { public string Name { get; set; } public DbColumnAttribute(string name) { this.Name = name; } } public class Client { [PrimaryKey] [DbColumn("client_id")] public int ClientId { get; set; } [DbColumn("last_name")] public string LastName { get; set; } [DbColumn("first_name")] public string FirstName { get; set; } [DbColumn("email")] public string Email { get; set; } }代码:
static void Test3() { var client = new Client() { ClientId = 2, LastName = "James", FirstName = "jon", Email = "jon@163.com" }; WritePK<Client>(client); Console.WriteLine(); WriteColumnMappings<Client>(client); } public static void WritePK<T>(T item) where T : new() { var type = item.GetType(); var queryPts = type.GetProperties(); Console.WriteLine("Finding PK for {0} ...", type.Name); var pk = queryPts.FirstOrDefault(x => x.GetCustomAttributes(false).Any( a => a.GetType() == typeof(PrimaryKeyAttribute) ) ); if (pk != null) { string msg = "The Primary Key for the {0} class is the {1} property"; Console.WriteLine(msg, type.Name, pk.Name); } } public static void WriteColumnMappings<T>(T item) where T : new() { var type = item.GetType(); var queryPts = type.GetProperties(); Console.WriteLine("Finding properties for {0} ...", type.Name); foreach (var p in queryPts) { var attributes = p.GetCustomAttributes(false); //获取属性的特性 var columnMapping = attributes.FirstOrDefault(a => a.GetType() == typeof(DbColumnAttribute) ); if (columnMapping != null) { string msg = "the {0} property maps to the {1} database column"; var mapsto = columnMapping as DbColumnAttribute; Console.WriteLine(msg, p.Name, mapsto.Name); } } }结果:
0 0
- 反射测试
- 对反射的测试
- 测试Java反射效率
- JAVA反射性能测试
- JAVA反射测试
- java 反射 测试
- java反射机制测试
- 反射机制测试
- 用反射 测试
- JAVA反射性能测试
- 反射测试2
- java反射性能测试
- java反射测试
- java反射测试
- protobuf反射机制测试
- 测试java反射机制
- java反射性能测试分析
- java反射性能测试分析
- Perl学习资料
- too many open files解决办法
- 给独立开发者的经验分享——开发工具
- Openwrt/Wifidog/PythonTool开发工具1(PythonQt的安装和使用)
- 每个前端开发者都应该积累着一份自己的 -- web开发规范文档
- 反射测试
- Spring切入点表达式常用写法
- 设置输入框长度
- extjs4.2 grid 日期在ie中出现0NaN-NaN-NaN
- 现货白银操作建议
- 基于DM6446的视频采集回放
- Python字符串操作
- Spring简单实例
- 给独立开发者的经验分享——领域知识