首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

关于反射怎么获得类的属性参数(表达可能不太正确,请大家看代码)?【】

2012-01-19 
关于反射如何获得类的属性参数(表达可能不太正确,请大家看代码)??【在线等】[Serializable][TableName( tUs

关于反射如何获得类的属性参数(表达可能不太正确,请大家看代码)??【在线等】
[Serializable]
[TableName( "tUser ")]
public   class   User
{

}
……………………………………
通过反射如何得到User类的TableName属性中的 "tUser "的值~??


[解决办法]
User user = new User();
object[] objs = user.GetType().GetCustomAttributes(typeof(TableNameAttribute), false);
foreach (object obj in objs)
{
TableNameAttribute tn = (TableNameAttribute)obj;
//tn.属性
}
[解决办法]

static void GetAttributeValue(object obj)
{
Type type = obj.GetType();

PropertyInfo[] pis = type.GetProperties(); // 获取此对象所有属性.
foreach (PropertyInfo pi in pis)
{
object[] objs = pi.GetCustomAttributes(true); // 这里获取每个属性的自定义属性(Attribute).
foreach (object o in objs)
{
Console.WriteLine(o.GetType().FullName);
Console.WriteLine(((ValueAttribute)o).Value);
}
}
}

[解决办法]
例如:

[....]
class TableNameAttribute:Attribute
{
public Name;
public TableName(string Name){ this.Name=Name;}
}

程序中:

TableNameAttribute tn=(TableNameAttribute)Attribute.GetCustomAttribute(
typeof(User),typeof(TableNameAttribute));
if(tn!=null)
{
string result=tn.Name;
......

热点排行