/// <summary>
        ///     Generates a property member within the runtime type.
        /// </summary>
        /// <param name="writer">
        ///     The text writer that outputs the content into the file.
        /// </param>
        /// <param name="member">
        ///     The property to be generated.
        /// </param>
        protected virtual void GenerateMember(StreamWriter writer, CSharpProperty member)
        {
            // Generate the documentation
            this.GenerateDocumentation(writer, true, "summary", member.XmlSummary);
            this.GenerateDocumentation(writer, true, "remarks", member.XmlRemarks);

            // Generate the signature
            if (member.Attributes != null && member.Attributes.Length != 0)
            {
                writer.WriteLine("        [" + String.Join(", ", member.Attributes) + "]");
            }
            writer.Write("        ");
            writer.Write(member.PropertyType);
            writer.Write(" ");
            writer.Write(member.Name);
            writer.WriteLine();

            // Generate the accessors
            writer.WriteLine("        {");
            if (member.PropertyGetter != null)
            {
                writer.WriteLine("            get;");
            }
            if (member.PropertySetter != null)
            {
                writer.WriteLine("            set;");
            }
            writer.WriteLine("        }");
        }
Ejemplo n.º 2
0
        /// <summary>
        ///     Generates a property member within the runtime type.
        /// </summary>
        /// <param name="writer">
        ///     The text writer that outputs the content into the file.
        /// </param>
        /// <param name="member">
        ///     The property to be generated.
        /// </param>
        protected override void GenerateMember(StreamWriter writer, CSharpProperty member)
        {
            List <CSharpModifiers> modifiers = new List <CSharpModifiers>();

            if (member.PropertyGetter != null)
            {
                modifiers.Add(member.PropertyGetter.AccessorModifier);
            }
            if (member.PropertySetter != null)
            {
                modifiers.Add(member.PropertySetter.AccessorModifier);
            }

            // Generate the documentation
            this.GenerateDocumentation(writer, true, "summary", member.XmlSummary);
            this.GenerateDocumentation(writer, true, "remarks", member.XmlRemarks);

            // Generate the signature
            if (member.Attributes != null && member.Attributes.Length != 0)
            {
                writer.WriteLine("        [" + String.Join(", ", member.Attributes) + "]");
            }
            writer.Write("        ");
            writer.Write(modifiers.Min().ConvertTo <String>().ToLower().Replace("_", " "));
            writer.Write(" ");
            writer.Write(member.PropertyAbstraction == CSharpAbstractions.None ? "" : member.PropertyAbstraction.ConvertTo <String>().ToLower() + " ");
            writer.Write(member.PropertyType);
            writer.Write(" ");
            writer.Write(member.Name);
            writer.WriteLine();

            // Generate the accessors
            writer.WriteLine("        {");
            this.GenerateMember(writer, member.PropertyGetter, "get", modifiers.Min());
            this.GenerateMember(writer, member.PropertySetter, "set", modifiers.Min());
            writer.WriteLine("        }");
        }