views:

5712

answers:

3

How can I go through each of the properties in my custom object? It is not a collection object, but is there something like this for non-collection objects?

For Each entry as String in myObject
    ' Do stuff here...
Next

There are string, integer and boolean properties in my object.

+9  A: 

By using reflection you can do that. In C# it looks like that;

PropertyInfo[] propertyInfo = myobject.GetType().GetProperties();


Added a VB.Net translation:

Dim info() As PropertyInfo = myobject.GetType().GetProperties()
yapiskan
Where is the value inside each entry?
Anders
There is a method named propertyInfo.GetValue().
yapiskan
+1  A: 

You can use reflection... With Reflection you can examine every member of a class (a Type), proeprties, methods, contructors, fields, etc..

using System.Reflection;

Type type = job.GetType();
    foreach ( MemberInfo memInfo in type.GetMembers() )
       if (memInfo is PropertyInfo)
       {
            // Do Something
       }
Charles Bretana
+5  A: 

You can use System.Reflection namespace to query information about the object type.

For Each p As System.Reflection.PropertyInfo In obj.GetType().GetProperties()
   If p.CanRead Then
       Console.WriteLine("{0}: {1}", p.Name, p.GetValue(obj, Nothing))
   End If
Next

Please note that it is not suggested to use this approach instead of collections in your code. Reflection is a performance intensive thing and should be used wisely.

Mehrdad Afshari