public void GenerateCode(CodeGenerationContext ctx, TextWriter writer) { switch (Member != null ? Member.ToString () : null) { case "MIN_VALUE": ctx.DoNotEscape = true; Target.GenerateCode (ctx, writer); ctx.DoNotEscape = false; writer.Write ('.'); writer.Write ("MinValue"); break; case "MAX_VALUE": ctx.DoNotEscape = true; Target.GenerateCode (ctx, writer); ctx.DoNotEscape = false; writer.Write ('.'); writer.Write ("MaxValue"); break; default: bool gen = AccessType == MemberAccessType.GenericSubtype; if (Target != null) { if (gen) writer.Write ("new "); Target.GenerateCode (ctx, writer); if (gen) writer.Write ("<" + GenericSubtype + ">"); else writer.Write ("." + ctx.SafeName (Member)); } else if (!gen) writer.Write (ctx.GetActualName (Member)); break; } }