public static string ToTraceMessage(this InitialSessionState iss) { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.AppendLine("Initial Session State"); stringBuilder.AppendLine(string.Concat("Language Mode = ", iss.LanguageMode.ToString())); stringBuilder.AppendLine(string.Concat("Apartment State = ", iss.ApartmentState.ToString())); stringBuilder.AppendLine(string.Concat("Thread Options = ", iss.ThreadOptions.ToString())); bool useFullLanguageModeInDebugger = iss.UseFullLanguageModeInDebugger; stringBuilder.AppendLine(string.Concat("Full language mode in debugger = ", useFullLanguageModeInDebugger.ToString())); stringBuilder.AppendLine("Visible Commands "); InitialSessionStateEntryCollection <SessionStateCommandEntry> commands = iss.Commands; commands.Where <SessionStateCommandEntry>((SessionStateCommandEntry item) => item.Visibility == SessionStateEntryVisibility.Public).ToList <SessionStateCommandEntry>().ForEach((SessionStateCommandEntry item) => stringBuilder.AppendLine(string.Concat("\t", item.Name))); stringBuilder.AppendLine("Invisible Commands "); InitialSessionStateEntryCollection <SessionStateCommandEntry> sessionStateCommandEntries = iss.Commands; sessionStateCommandEntries.Where <SessionStateCommandEntry>((SessionStateCommandEntry item) => item.Visibility == SessionStateEntryVisibility.Private).ToList <SessionStateCommandEntry>().ForEach((SessionStateCommandEntry item) => stringBuilder.AppendLine(string.Concat("\t", item.Name))); return(stringBuilder.ToString()); }