Ik heb de volgende extension methods geschreven voor de MemberInfo class in the System.Reflection namespace. Maar ik kan ze niet gebruiken op bijvoorbeeld te System.Type class. Is er een mogelijkheid om dit wel voor elkaar te krijgen zonder de code te dupliceren aangezien de Type class een afgeleide is van de MemberInfo class?
C#:
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
32
33
| public static class MemberInfoExtensions { #region Public Methods public static T GetAttribute<T>(this MemberInfo type) where T : Attribute { return MemberInfoExtensions.GetAttribute<T>(type, true); } public static T GetAttribute<T>(this MemberInfo type, bool inherit) where T : Attribute { T[] attributes = MemberInfoExtensions.GetAttributes<T>(type, inherit); if (attributes.Length > 0) { return attributes[0]; } return default(T); } public static T[] GetAttributes<T>(this MemberInfo type) where T : Attribute { return MemberInfoExtensions.GetAttributes<T>(type, true); } public static T[] GetAttributes<T>(this MemberInfo type, bool inherit) where T : Attribute { return (T[])type.GetCustomAttributes(typeof(T), inherit); } #endregion } |
[ Voor 3% gewijzigd door Kun op 13-12-2008 12:32 ]