Ranorex und C# – Alle Property einer Klasse ausgeben

Der folgende Tipp kann nicht nur in Ranorex sondern in jedem beliebigen .NET Programm genutzt werden. Die Methode von diesem Tipp schreibt alle Member, Property, die public, static und nicht vererbt wurden in das Ranorex Logfile.

Logging

Durch das Anpassen der Zeile System.Reflection.PropertyInfo[] properties = myType.GetProperties(BindingFlags.Public | BindingFlags.Static | BindingFlags.DeclaredOnly); lässt sich der Filter für die Member erweitern.

Wird die Methode nicht in Ranorex ausgeführt, müssen die Zeilen mit Report.Info angepasst werden. MyTypeClass muss durch Eure Klasse ersetzt werden.

 

public static void WriteProgramParameters(){
    Report.Info("BRP", System.Reflection.MethodBase.GetCurrentMethod());
    Type myType = typeof(MyTypeClass);
							
    System.Reflection.PropertyInfo[] properties = myType.GetProperties(BindingFlags.Public | BindingFlags.Static | BindingFlags.DeclaredOnly);
    // Properties sortieren
    Array.Sort(properties, delegate(System.Reflection.PropertyInfo prop1, System.Reflection.PropertyInfo prop2) {
         return prop1.Name.CompareTo(prop2.Name); // (user1.Age - user2.Age)
     });
    // Properties ausgeben
    foreach (System.Reflection.PropertyInfo property in properties)
    {
        try {
            if (property.CanRead){
                Report.Info("Parameters",property.Name + ": " + property.GetValue(myType, null).ToString());
            }
        } catch (Exception) {
            //
        }
    }
}

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.