Thanks for Michael's informative input.
Hi Andrew,
As Michael has mentiond, Type.GetCustomAttributes method can only return
all the custom attributes (of a certain type) applied on that class. If
your class has other members(such as property, method field..... ) that
also apply that certain attribute, you should also loop through the class's
members (MemberInfo class) and call MemberInfo.GetCustomAttributes to query
attributes on class members.
BTW, the Type.GetMembers method by default only return all public members,
you need to supply the BindingFlags so as to let is return specific kinds
of members(such as instance members, non-public members). Here is a simple
test code snippet:
=========================
static void LoopAttributeInType(Type clsType )
{
object[] objs = null;
objs = clsType.GetCustomAttributes(typeof(TitleAttribute),
false);
foreach (TitleAttribute title in objs)
{
Console.WriteLine(title.Title);
}
foreach(MemberInfo mi in clsType.GetMembers(
BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance))
{
objs = mi.GetCustomAttributes(typeof(TitleAttribute),
false);
foreach (TitleAttribute title in objs)
{
Console.WriteLine(title.Title);
}
}
}
=======================
Hope this helps some. If you have any thing unclear, please feel free to
post here.
Sincerely,
Steven Cheng
Microsoft MSDN Online Support Lead
==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications.
Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial
response from the community or a Microsoft Support Engineer within 1
business day is
acceptable. Please note that each follow up response may take approximately
2 business days
as the support professional working with you may need further investigation
to reach the
most efficient resolution. The offering is not appropriate for situations
that require
urgent, real-time or phone-based interactions or complex project analysis
and dump analysis
issues. Issues of this nature are best handled working with a dedicated
Microsoft Support
Engineer by contacting Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscriptions/support/default.aspx.
==================================================
This posting is provided "AS IS" with no warranties, and confers no rights.