devxlogo

FilterByType – filtering the results of Type.FindMembers by thier return type

FilterByType – filtering the results of Type.FindMembers by thier return type

' Accept only properties and methods whose return value matches' the Type passed as the second argument.' Note: it requires Imports System.ReflectionFunction FilterByType(ByVal m As MemberInfo, ByVal filterCriteria As Object) As _    Boolean    If m.MemberType = MemberTypes.Property Then        ' If it is a property, cast MemberInfo to PropertyInfo.        Dim pi As PropertyInfo = CType(m, PropertyInfo)        ' Return True if the property type is the one we're looking for.        Return (pi.PropertyType Is filterCriteria)    ElseIf m.MemberType = MemberTypes.Method Then        ' If it is a method, cast MemberInfo to MethodInfo.        Dim mi As MethodInfo = CType(m, MethodInfo)        ' Return True if the return type is the one we're looking for.        Return (mi.ReturnType Is filterCriteria)    End IfEnd Function' EXAMPLE:' Get a reference to the System.String type.Dim stringType As Type = Type.GetType("System.String")Dim minfos() As MemberInfo        ' We're looking for properties and functions that return a 32-bit integer.Dim returnType As Type = Type.GetType("System.Int32")' We're searching only public, non-shared methods and properties.minfos = stringType.FindMembers( MemberTypes.Method Or MemberTypes.Property, _    BindingFlags.Public Or BindingFlags.Instance, AddressOf FilterByType, _    returnType)Dim mi As MemberInfoFor Each mi In minfos    Debug.WriteLine(mi.Name)Next        ' Note: This code is taken from Francesco Balena's' "Programming Microsoft Visual Basic .NET" - MS Press 2002, ISBN 0735613753' You can read a free chapter of the book at ' http://www.vb2themax.com/HtmlDoc.asp?Table=Books&ID=101000

See also  Why ChatGPT Is So Important Today
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist