编写人生
写写代码,写写人生
随笔- 233 文章- 0 评论- 645
博客园
首页
新随笔
联系
管理
订阅
2005年8月25日
MemberInfo.GetCustomAttributes和MemberDescriptor.Attributes获取特性的不同
注:为区分Attribute和Property翻译的不同,Property翻译为属性,Attribute翻译为特性。
在对对象进行反射操作时,有俩个主要的方式处理:一个是System.Reflection命名空间下的一组*Info类,一个是System.ComponentModel命名空间下的一组*Descriptor类。他们的区别可以参考MSDN的相关章节。
这里讨论的是具体到MemberInfo.GetCustomAttributes和MemberDescriptor.Attributes获取特性的不同,他们都返回成员的特性,但获取的结果不同。
假设有下面俩个类:
class
A
{
private
B _b;
public
B B
{
get
{
return
_b; }
set
{ _b
=
value; }
}
}
[System.ComponentModel.Description(
"
注释信息
"
)]
class
B : A
{
}
这里的A有一个属性B,类型是B.
现在使用MemberInfo.GetCustomAttributes获取B属性的标记
foreach
(Attribute att
in
typeof
(A).GetProperty(
"
B
"
).GetCustomAttributes(
false
))
{
Console.WriteLine(att.ToString());
}
我们发现没有任何输出,因为我们看见B属性上的确没有任何“特性”。
但我们现在转成使用MemberDescriptor.Attributes获取特性。
foreach
(Attribute att
in
System.ComponentModel.TypeDescriptor.GetProperties(
typeof
(A))[
"
B
"
].Attributes)
{
Console.WriteLine(att.ToString());
}
输出的结果竟然是:
System.ComponentModel.DescriptionAttribute
这说明这个函数将属性的返回类型的标记也作为输出部分了,但我实在不明白MS为什么这样设计,造成我现在的混乱。
posted @ 2005-08-25 14:11 编写人生 阅读(1240) 评论(0)
编辑
<
2005年8月
>
日
一
二
三
四
五
六
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
Web
tansm.cnblogs.com
昵称:
编写人生
园龄:
7年3个月
粉丝:
9
关注:
0
搜索
常用链接
我的随笔
我的评论
我的参与
最新评论
我的标签
我的标签
Torridity
(2)
Entity Framework
(2)
性能
(2)
ORM
(2)
LinQ
(2)
沙龙
(2)
DataSet
(1)
Insert
(1)
发明畅想
(1)
随笔档案
2012年2月 (1)
2011年12月 (6)
2011年11月 (2)
2011年10月 (2)
2011年8月 (1)
2011年5月 (2)
2011年3月 (2)
2011年2月 (1)
2011年1月 (1)
2010年10月 (2)
2010年9月 (4)
2010年8月 (1)
2010年7月 (1)
2010年6月 (9)
2010年3月 (2)
2010年2月 (3)
2010年1月 (2)
2009年9月 (3)
2009年7月 (1)
2009年4月 (1)
2009年3月 (1)
2009年2月 (2)
2009年1月 (1)
2008年12月 (1)
2008年11月 (1)
2008年10月 (1)
2008年9月 (1)
2008年6月 (4)
2008年5月 (3)
2008年4月 (6)
2008年3月 (5)
2008年2月 (1)
2008年1月 (4)
2007年12月 (2)
2007年11月 (2)
2007年10月 (2)
2007年9月 (5)
2007年8月 (2)
2007年7月 (4)
2007年6月 (1)
2007年5月 (1)
2007年4月 (3)
2007年3月 (5)
2007年2月 (1)
2006年12月 (2)
2006年11月 (7)
2006年10月 (4)
2006年9月 (1)
2006年8月 (8)
2006年7月 (6)
2006年6月 (7)
2006年5月 (2)
2006年4月 (1)
2006年3月 (8)
2006年2月 (6)
2006年1月 (2)
2005年12月 (5)
2005年11月 (3)
2005年10月 (2)
2005年9月 (4)
2005年8月 (12)
2005年7月 (12)
2005年6月 (2)
2005年5月 (4)
2005年4月 (1)
2005年1月 (13)
2004年12月 (6)
2004年11月 (9)
相册
taobao
编程朋友
AdamBear 越学越没底
Arbean
Masterpiece 纯爷们!在乎?
Validation Application Block: Revealed
我的高中同学录
怎么捅破那层纸?(续)
很好的性能调优的文章,包括内存和SQL的
积分与排名
积分 - 173965
排名 - 506
最新评论
阅读排行榜
评论排行榜
推荐排行榜