Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
We often need to know a given object’s all properties at run time, for example, tracking a data container object’s properties changes across different components. Here is a simple helper class you can use to do this magic.
namespace Helper { using System; using System.Collections.Generic; using System.Diagnostics; public static class ObjPropertiesPrinter<objType> { public static void OutPut(objType objInstance) { Type myObjectType = typeof(objType); // Get public properties via reflection System.Reflection.PropertyInfo[] propInfo = myObjectType.GetProperties(); // Output properties foreach (System.Reflection.PropertyInfo info in propInfo) { Debug.WriteLine(info.Name + ": " + info.GetValue(objInstance, null).ToString()); } } } } |
Once this class is added to your project, it can be used in this way:
… Helper.ObjPropertiesPrinter<MyClass>.OutPut(oneInstanceOfMyClass); … |
Similarly, you can also get other info via reflection such as fields, events, etc.
Comments
- Anonymous
November 20, 2008
PingBack from http://blog.a-foton.ru/index.php/2008/11/20/getting-object%e2%80%99s-all-properties-at-runtime/ - Anonymous
November 20, 2008
You could also write a class to do the same that used compiled LINQ expression trees, if you needed to access the values of the properties more frequently, you'd get much, much better performance.