// Compiler options: -o+ using System; using System.Reflection; struct D { public static D d1 = new D (1); public int d2; public D (int v) { d2 = 0; } } class T { public static int Main () { ConstructorInfo mi = typeof(D).GetConstructors (BindingFlags.Instance | BindingFlags.Public)[0]; MethodBody mb = mi.GetMethodBody(); Console.WriteLine (mb.GetILAsByteArray ().Length); if (mb.GetILAsByteArray ().Length != 8) { return 1; } mi = typeof (D).GetConstructors (BindingFlags.Static | BindingFlags.NonPublic) [0]; mb = mi.GetMethodBody (); Console.WriteLine (mb.GetILAsByteArray ().Length); if (mb.GetILAsByteArray ().Length != 12) { return 2; } Console.WriteLine ("OK"); return 0; } }