// Make sure that the field and accessor methods of an automatic property have the CompilerGenerated attribute using System; using System.Reflection; using System.Runtime.CompilerServices; using System.Diagnostics; public class Test { public string Foo { get; set; } public static int Main () { FieldInfo [] fields = typeof (Test).GetFields(BindingFlags.NonPublic | BindingFlags.Instance); if (!(fields.Length > 0)) return 1; object [] field_atts = fields[0].GetCustomAttributes (false); if (field_atts.Length != 2) return 2; if (field_atts[1].GetType() != typeof (DebuggerBrowsableAttribute)) return 3; if (field_atts[0].GetType() != typeof (CompilerGeneratedAttribute)) return 4; if (fields [0].Name != "k__BackingField") return 10; PropertyInfo property = typeof (Test).GetProperty ("Foo"); MethodInfo get = property.GetGetMethod (false); object [] get_atts = get.GetCustomAttributes (false); if (!(get_atts.Length > 0)) return 4; if (get_atts[0].GetType() != typeof (CompilerGeneratedAttribute)) return 5; MethodInfo set = property.GetSetMethod (false); object [] set_atts = set.GetCustomAttributes (false); if (!(set_atts.Length > 0)) return 6; if (set_atts[0].GetType() != typeof (CompilerGeneratedAttribute)) return 7; return 0; } }