private static void dumpTypes(string path) { ReadUiaControlIsOffscreenCommand ccc = new ReadUiaControlIsOffscreenCommand(); Assembly[] allAssms = AppDomain.CurrentDomain.GetAssemblies(); System.IO.StreamWriter writer = new System.IO.StreamWriter(path); foreach (Assembly asm in allAssms) { Console.WriteLine(asm.FullName); if (asm.FullName.Contains("UIAutomation,")) { Console.WriteLine("working..."); Type[] types = asm.GetTypes(); foreach (Type t in types) { if (t.FullName.Contains("UIAutomation.Commands") && t.IsPublic) { // Console.WriteLine(t.FullName); PropertyInfo[] properties = t.GetProperties(); // BindingFlags.Instance); foreach (PropertyInfo property in properties) { // Console.WriteLine(property.Name); // Console.WriteLine(property.PropertyType); // Console.WriteLine(property.Attributes); // Console.WriteLine(t.FullName + "\t" + property.Name + "\t" + property.PropertyType); if (property.Name != "ParameterSetName" && property.Name != "MyInvocation" && property.Name != "InvokeCommand" && property.Name != "Host" && property.Name != "SessionState" && property.Name != "Events" && property.Name != "JobRepository" && property.Name != "InvokeProvider" && property.Name != "Stopping" && property.Name != "CommandRuntime" && property.Name != "CurrentPSTransaction" && property.Name != "CommandOrigin") { if (t.FullName.Contains(".Get") || t.FullName.Contains(".Set") || t.FullName.Contains(".Invoke") || t.FullName.Contains(".Register") || t.FullName.Contains(".Unregister") || t.FullName.Contains(".Read") || t.FullName.Contains(".ConvertFrom") || t.FullName.Contains(".ConvertTo") || t.FullName.Contains(".Move") || t.FullName.Contains(".New") || t.FullName.Contains(".Add") || t.FullName.Contains(".Save") || t.FullName.Contains(".Step") || t.FullName.Contains(".Start") || t.FullName.Contains(".Stop") || t.FullName.Contains(".Wait")) { writer.WriteLine(t.FullName.Replace("UIAutomation.Commands.", "").Replace("Command", ""). Replace("UIA", "-UIA") + "\t" + property.Name + "\t" + property.PropertyType); } } } } } Console.WriteLine("!"); } } writer.Flush(); writer.Close(); }