Exemple #1
0
        /// <summary>
        /// Create the template output
        /// </summary>
        public virtual string TransformText()
        {
            this.Write("\r\nusing System;\r\n\r\nnamespace ");

            #line 10 "E:\Xenko Projects\XenoSpace\CodeGeneration.TemplatesT4\Templates\EqualityThroughMembers.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(this.TypeInfo.Namespace));

            #line default
            #line hidden
            this.Write("\r\n{\r\n\t");

            #line 12 "E:\Xenko Projects\XenoSpace\CodeGeneration.TemplatesT4\Templates\EqualityThroughMembers.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(ClassMaker.MakeTypeNestingStart(this.TypeInfo)));

            #line default
            #line hidden
            this.Write("\r\n\r\n\tpartial ");

            #line 14 "E:\Xenko Projects\XenoSpace\CodeGeneration.TemplatesT4\Templates\EqualityThroughMembers.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(TypeAnalysis.GetTypeKeyword(this.TypeInfo)));

            #line default
            #line hidden
            this.Write(" ");

            #line 14 "E:\Xenko Projects\XenoSpace\CodeGeneration.TemplatesT4\Templates\EqualityThroughMembers.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(ClassMaker.MakeTypedTypeName(this.TypeInfo)));

            #line default
            #line hidden
            this.Write(" : IEquatable<");

            #line 14 "E:\Xenko Projects\XenoSpace\CodeGeneration.TemplatesT4\Templates\EqualityThroughMembers.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(ClassMaker.MakeTypedTypeName(this.TypeInfo)));

            #line default
            #line hidden
            this.Write(">\r\n\t{\r\n\t\tpublic bool Equals(");

            #line 16 "E:\Xenko Projects\XenoSpace\CodeGeneration.TemplatesT4\Templates\EqualityThroughMembers.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(ClassMaker.MakeTypedTypeName(this.TypeInfo)));

            #line default
            #line hidden
            this.Write(" other)\r\n        {\r\n            if (object.ReferenceEquals(other, null))\r\n\t\t\t\tret" +
                       "urn false;\r\n\t\t\t\r\n\t\t\treturn\r\n\t\t\t    ");

            #line 22 "E:\Xenko Projects\XenoSpace\CodeGeneration.TemplatesT4\Templates\EqualityThroughMembers.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(string.Join(
                                                                   " && \r\n                ",
                                                                   this
                                                                   .StatedMembers
                                                                   .Select(x => $"this.{x}.Equals(other.{x})"))));

            #line default
            #line hidden
            this.Write(";\r\n        }\r\n\r\n        ");

            #line 29 "E:\Xenko Projects\XenoSpace\CodeGeneration.TemplatesT4\Templates\EqualityThroughMembers.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(this.MakeGetHashCode()));

            #line default
            #line hidden
            this.Write("\r\n\r\n        ");

            #line 31 "E:\Xenko Projects\XenoSpace\CodeGeneration.TemplatesT4\Templates\EqualityThroughMembers.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(ClassMaker.MakeEqualsConformity(this.DataTypeInfo)));

            #line default
            #line hidden
            this.Write("\r\n\t}\r\n\t");

            #line 33 "E:\Xenko Projects\XenoSpace\CodeGeneration.TemplatesT4\Templates\EqualityThroughMembers.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(ClassMaker.MakeTypeNestingEnd(this.TypeInfo)));

            #line default
            #line hidden
            this.Write("\r\n}");
            return(this.GenerationEnvironment.ToString());
        }
        /// <summary>
        /// Create the template output
        /// </summary>
        public virtual string TransformText()
        {
            this.Write("\r\nnamespace ");

            #line 8 "E:\Xenko Projects\XenoSpace\CodeGeneration.TemplatesT4\Templates\StructuralConstructor.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(this.TypeInfo.Namespace));

            #line default
            #line hidden
            this.Write("\r\n{\r\n\t");

            #line 10 "E:\Xenko Projects\XenoSpace\CodeGeneration.TemplatesT4\Templates\StructuralConstructor.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(ClassMaker.MakeTypeNestingStart(this.TypeInfo)));

            #line default
            #line hidden
            this.Write("\r\n\tpartial ");

            #line 11 "E:\Xenko Projects\XenoSpace\CodeGeneration.TemplatesT4\Templates\StructuralConstructor.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(TypeAnalysis.GetTypeKeyword(this.TypeInfo)));

            #line default
            #line hidden
            this.Write(" ");

            #line 11 "E:\Xenko Projects\XenoSpace\CodeGeneration.TemplatesT4\Templates\StructuralConstructor.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(this.TypeInfo.Name));

            #line default
            #line hidden
            this.Write("\r\n\t{\r\n\t\tpublic ");

            #line 13 "E:\Xenko Projects\XenoSpace\CodeGeneration.TemplatesT4\Templates\StructuralConstructor.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(this.TypeInfo.Name));

            #line default
            #line hidden
            this.Write("(");

            #line 13 "E:\Xenko Projects\XenoSpace\CodeGeneration.TemplatesT4\Templates\StructuralConstructor.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(this.MakeConstructorParameters()));

            #line default
            #line hidden
            this.Write(")\r\n\t\t{\r\n\t\t\t");

            #line 15 "E:\Xenko Projects\XenoSpace\CodeGeneration.TemplatesT4\Templates\StructuralConstructor.tt"
            foreach (var g in this.GetGuards())
            {
            #line default
            #line hidden
                this.Write("\t\t\t\t");

            #line 16 "E:\Xenko Projects\XenoSpace\CodeGeneration.TemplatesT4\Templates\StructuralConstructor.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(g.TransformText()));

            #line default
            #line hidden
                this.Write("\r\n\t\t\t");

            #line 17 "E:\Xenko Projects\XenoSpace\CodeGeneration.TemplatesT4\Templates\StructuralConstructor.tt"
            }

            #line default
            #line hidden
            this.Write("\t\t\t\r\n\t\t\t");

            #line 19 "E:\Xenko Projects\XenoSpace\CodeGeneration.TemplatesT4\Templates\StructuralConstructor.tt"
            foreach (var mi in this.GetDataMembers())
            {
            #line default
            #line hidden
                this.Write("\t\t\t\t\r\n\t\t\t\tthis.");

            #line 21 "E:\Xenko Projects\XenoSpace\CodeGeneration.TemplatesT4\Templates\StructuralConstructor.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(mi.name));

            #line default
            #line hidden
                this.Write(" = ");

            #line 21 "E:\Xenko Projects\XenoSpace\CodeGeneration.TemplatesT4\Templates\StructuralConstructor.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(mi.name));

            #line default
            #line hidden
                this.Write(";\r\n\r\n\t\t\t");

            #line 23 "E:\Xenko Projects\XenoSpace\CodeGeneration.TemplatesT4\Templates\StructuralConstructor.tt"
            }

            #line default
            #line hidden
            this.Write("\t\t\r\n\t\t}\r\n\t}\r\n\t");

            #line 27 "E:\Xenko Projects\XenoSpace\CodeGeneration.TemplatesT4\Templates\StructuralConstructor.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(ClassMaker.MakeTypeNestingEnd(this.TypeInfo)));

            #line default
            #line hidden
            this.Write("\r\n}\r\n");
            return(this.GenerationEnvironment.ToString());
        }