using System.Collections;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
class SupperMe1 : TextWriter
public override Encoding Encoding { get { throw new NotImplementedException(); } }
class SupperMe2 : StringWriter
private static readonly string _outputStart = "<fiddle_output_raw>";
private static readonly string _outputEnd = "</fiddle_output_raw>";
private readonly int _maxSymbolsSize;
[StructLayout(LayoutKind.Explicit)]
public static void Main()
var sc = new SupperClass();
var realOut = sc.me1.Value;
Console.WriteLine(realOut.GetType());
Console.WriteLine(Environment.Is64BitOperatingSystem);
Console.WriteLine(Environment.Is64BitProcess);
var assCfg = AppDomain.CurrentDomain.GetAssemblies().First(p=>p.FullName.StartsWith("System.Configuration"));
var type = assCfg.GetType("System.Configuration.ConfigurationManager");
ExpandInstanceProperty(type.GetProperty("AppSettings").GetValue(null));
static void ExpandInstanceProperty(Object obj)
Console.WriteLine(((ICollection)obj).Count);
foreach(var item in (IEnumerable)obj)
ExpandInstanceProperty(item);
foreach(var ppt in obj.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public))
pValue = ppt.GetValue(obj);
pValue = "[Exception:"+e.GetBaseException().Message+"]";
Console.WriteLine(pValue);
static void ExpandStaticProperty(Type type)
foreach(var ppt in type.GetProperties(BindingFlags.Static | BindingFlags.Public))
pValue = ppt.GetValue(null);
pValue = "[Exception:"+e.GetBaseException().Message+"]";
Console.WriteLine(pValue);