Browse Source

2010-03-31 Rodrigo Kumpera <[email protected]>

	* Module.cs:
	* MonoModule.cs: Implement FindTypes.

svn path=/trunk/mcs/; revision=154589
Rodrigo Kumpera 15 years ago
parent
commit
24ea18a2ac

+ 5 - 0
mcs/class/corlib/System.Reflection/ChangeLog

@@ -1,3 +1,8 @@
+2010-03-31 Rodrigo Kumpera  <[email protected]>
+
+	* Module.cs:
+	* MonoModule.cs: Implement FindTypes.
+
 2010-03-31 Rodrigo Kumpera  <[email protected]>
 
 	* Assembly.cs: Raise the right exception.

+ 6 - 11
mcs/class/corlib/System.Reflection/Module.cs

@@ -130,16 +130,6 @@ namespace System.Reflection {
 		[MethodImplAttribute (MethodImplOptions.InternalCall)]
 		internal static extern int GetMDStreamVersion (IntPtr module_handle);
 	
-		public virtual Type[] FindTypes(TypeFilter filter, object filterCriteria) 
-		{
-			System.Collections.ArrayList filtered = new System.Collections.ArrayList ();
-			Type[] types = GetTypes ();
-			foreach (Type t in types)
-				if (filter (t, filterCriteria))
-					filtered.Add (t);
-			return (Type[])filtered.ToArray (typeof(Type));
-		}
-	
 		public virtual object[] GetCustomAttributes(bool inherit) 
 		{
 			return MonoCustomAttrs.GetCustomAttributes (this, inherit);
@@ -506,13 +496,18 @@ namespace System.Reflection {
 #if NET_4_0
 		static Exception CreateNIE ()
 		{
-			return new NotSupportedException ("Derived classes must implement it");
+			return new NotImplementedException ("Derived classes must implement it");
 		}
 
 		public virtual bool IsResource()
 		{
 			throw CreateNIE ();
 		}
+
+		public virtual Type[] FindTypes(TypeFilter filter, object filterCriteria) 
+		{
+			throw CreateNIE ();
+		}
 #endif
 
 	}

+ 15 - 0
mcs/class/corlib/System.Reflection/MonoModule.cs

@@ -52,5 +52,20 @@ namespace System.Reflection {
 		{
 			return is_resource;
 		}
+
+#if NET_4_0
+		public override
+#else
+		public virtual
+#endif
+		Type[] FindTypes(TypeFilter filter, object filterCriteria) 
+		{
+			System.Collections.ArrayList filtered = new System.Collections.ArrayList ();
+			Type[] types = GetTypes ();
+			foreach (Type t in types)
+				if (filter (t, filterCriteria))
+					filtered.Add (t);
+			return (Type[])filtered.ToArray (typeof(Type));
+		}
 	}
 }