[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Dotgnu-pnet-commits] CVS: pnetlib/runtime/System Type.cs,1.13,1.14
From: |
Gopal.V <address@hidden> |
Subject: |
[Dotgnu-pnet-commits] CVS: pnetlib/runtime/System Type.cs,1.13,1.14 |
Date: |
Fri, 14 Feb 2003 13:39:07 -0500 |
Update of /cvsroot/dotgnu-pnet/pnetlib/runtime/System
In directory subversions:/tmp/cvs-serv2322/runtime/System
Modified Files:
Type.cs
Log Message:
implement Type.FindMembers method
Index: Type.cs
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnetlib/runtime/System/Type.cs,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -r1.13 -r1.14
*** Type.cs 7 Feb 2003 18:38:00 -0000 1.13
--- Type.cs 14 Feb 2003 18:39:05 -0000 1.14
***************
*** 25,28 ****
--- 25,29 ----
using System.Reflection;
using System.Globalization;
+ using System.Collections;
using System.Runtime.CompilerServices;
***************
*** 151,154 ****
--- 152,238 ----
return GetMember(attr.MemberName);
}
+
+ #if !ECMA_COMPAT
+
+ /* convenience function wrapping over the other abstract stuff */
+ public virtual MemberInfo[] FindMembers (MemberTypes memberType,
+ BindingFlags
bindingAttr,
+ MemberFilter
filter,
+ Object
filterCriteria)
+ {
+ ArrayList list=new ArrayList();
+ if((memberType & MemberTypes.Constructor)!=0)
+ {
+ ConstructorInfo[] ctors =
GetConstructors(bindingAttr);
+ foreach(MemberInfo minfo in ctors)
+ {
+ if(filter==null ||
filter(minfo,filterCriteria))
+ {
+ list.Add(minfo);
+ }
+ }
+ }
+ if((memberType & MemberTypes.Event)!=0)
+ {
+ EventInfo[] events =
GetEvents(bindingAttr);
+ foreach(MemberInfo minfo in events)
+ {
+ if(filter==null ||
filter(minfo,filterCriteria))
+ {
+ list.Add(minfo);
+ }
+ }
+ }
+ if((memberType & MemberTypes.Field)!=0)
+ {
+ FieldInfo[] fields =
GetFields(bindingAttr);
+ foreach(MemberInfo minfo in fields)
+ {
+ if(filter==null ||
filter(minfo,filterCriteria))
+ {
+ list.Add(minfo);
+ }
+ }
+ }
+ if((memberType & MemberTypes.Method)!=0)
+ {
+ MethodInfo[] mthds =
GetMethods(bindingAttr);
+ foreach(MemberInfo minfo in mthds)
+ {
+ if(filter==null ||
filter(minfo,filterCriteria))
+ {
+ list.Add(minfo);
+ }
+ }
+ }
+ if((memberType & MemberTypes.Property)!=0)
+ {
+ PropertyInfo[] props=
GetProperties(bindingAttr);
+ foreach(MemberInfo minfo in props)
+ {
+ if(filter==null ||
filter(minfo,filterCriteria))
+ {
+ list.Add(minfo);
+ }
+ }
+
+ }
+ if((memberType & MemberTypes.NestedType)!=0)
+ {
+ Type[] types=
GetNestedTypes(bindingAttr);
+ foreach(MemberInfo minfo in types)
+ {
+ if(filter==null ||
filter(minfo,filterCriteria))
+ {
+ list.Add(minfo);
+ }
+ }
+ }
+
+ MemberInfo[] retval=new MemberInfo[list.Count];
+ list.CopyTo(retval);
+ return retval;
+ }
+ #endif
// Get the element type for this type.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Dotgnu-pnet-commits] CVS: pnetlib/runtime/System Type.cs,1.13,1.14,
Gopal.V <address@hidden> <=
- Prev by Date:
[Dotgnu-pnet-commits] CVS: pnetlib ChangeLog,1.686,1.687
- Next by Date:
[Dotgnu-pnet-commits] CVS: pnet/image meta_build.c,1.18,1.19 misc_token.c,1.1,1.2
- Previous by thread:
[Dotgnu-pnet-commits] CVS: pnetlib ChangeLog,1.686,1.687
- Next by thread:
[Dotgnu-pnet-commits] CVS: pnet/image meta_build.c,1.18,1.19 misc_token.c,1.1,1.2
- Index(es):