c#的Attribute有些类似java中的annotation,可以方便地在类成员中做修饰/限制作用。
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 varin 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());
}
}
}
}
}
}
// 自定义注解类publicclass MyAttr : Attribute
{
publicbool AddToDB;
}
//实体类定义:class Entity
{
[MyAttr(AddToDB=true)]
publicstring aa{get; set;}
publicstring bb{get; set;}
}
原文:http://www.cnblogs.com/lbhqq/p/5529672.html
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!