c#遍历并判断实体或类的成员属性
2016-05-26 08:54
232 查看
c#的Attribute有些类似java中的annotation,可以方便地在类成员中做修饰/限制作用。
Demo:
View Code
Demo:
class ss { public stat BsonDocument Iterator(object obj){ MyAttr currAttr = null;// 自定义注解类 Type type = obj.GetType();// obj为传入的对象参数 //获取类名 String className = type.Name; //获取所有公有属性 PropertyInfo[] info = type.GetProperties(); // 遍历所有属性 foreach (PropertyInfo var in info) { //判断是否含有MongoDB相关注解(一个属性可以包含多个注解) Object[] attrs = var.GetCustomAttributes(false);// 取得属性的特性标签,false表示不获取因为继承而得到的标签 if (attrs.Length > 0) { foreach(Object attr in attrs)// 遍历该属性的所有注解 { if ((currAttr = attr as MyAttr) != null && currAttr.AddToDB)// 判断是否有属性修饰,并判断属性值 { bson.Add(var.Name, var.GetValue(obj,null).ToString()); } } } } } } // 自定义注解类 public class MyAttr : Attribute { public bool AddToDB; } //实体类定义: class Entity { [MyAttr(AddToDB=true)] public string aa{get; set;} public string bb{get; set;} }
View Code
相关文章推荐
- XML-6处理(C#—XML读取、增加、修改和删除操作 )A-B版本
- 30天C#基础巩固------读写流(StreamWrite/StreamReader)
- C#4.0中var和dynamic的区别
- 【经典算法】迷宫找路径C#版
- 【经典算法】八皇后问题C#版
- 采用C#编程的ModBus协议的实现
- C#虚方法的重写
- C# 编写点击图片框计算出在文件中的像素点
- C# 编写命令行交互工具——实时输出_获取执行结果
- C# 读写文件操作
- C# ListView 编写 ListView 实体类
- C#文件流
- 【每日算法】删减字符获得最大回文符
- C#Winform实现高效率导入和导出Excel文件
- C#中菜单栏,工具栏,状态栏的学习总结
- C#将托管DLL嵌入exe文件
- 用C#模版匹配识别新教务系统登录验证码
- C#实验8(2)
- c#Gdi画图的两种方式
- protobuf V3 C# 中文机翻教程。