RSCG Example – ToStringDebugger – part 28

 

 

name StructRecordsGenerator
nuget

https://www.nuget.org/packages/StructRecordGenerator/

link https://github.com/SergeyTeplyakov/StructRecordsGenerator
author Sergey Teplyakov

This will generate code .ToString. Usefull for debugging
 

The code that you start with is


    [StructGenerators.GenerateToString(PrintTypeName = true)]

    class Person

    {

        [Required]

        public string FirstName { get; set; }

        public string LastName { get; set; }

    }


The code that you will use is



    var p = new Person();

    p.FirstName = "Andrei";

    //put here a debug watch to see p

    Console.WriteLine(p.ToString());

 

The code that is generated is


    partial class Person

    {

        /// <inheritdoc/>

        public override string ToString()

        {

            var sb = new StringBuilder();

            sb.Append("Person ");

            sb.Append("{ ");

            if (PrintMembers(sb))

            {

                sb.Append(" ");

            }

    

            sb.Append("}");

            return sb.ToString(0, Math.Min(sb.Length, /*String rep limit*/ 1024));

        }

    

        /// <summary>

        /// Prints the content of the instance into a given string builder.

        /// </summary>

        protected virtual bool PrintMembers(StringBuilder sb)

        {

            sb.Append("s = ");

            sb.Append((object)s);

            sb.Append(", ");

            sb.Append("ID = ");

            sb.Append(ID);

            sb.Append(", ");

            sb.Append("FirstName = ");

            sb.Append((object)FirstName);

            sb.Append(", ");

            sb.Append("LastName = ");

            sb.Append((object)LastName);

            return true;

        }

    }

Example Code: https://github.com/ignatandrei/RSCG_Examples/tree/main/DebuggerToString

All RSCG

NrBlog Post
1RSCG–part 1
2RSCG- AppVersion–part 2
3http://msprogrammer.serviciipeweb.ro/2021/02/17/rsgc-enum-part-3/
4RSGC-JSON to Class- part 4
5RSGC-Constructor – Deconstructor – part 5
6RSGC – DTO Mapper – part 6
7RSGC – Skinny Controllers- part 7
8RSGC-Builder Design Pattern – part 8
9RSGC- MetadataFromObject – part 9
10RSGC- Dynamic Mock – part 10
11RSCG- Method Decorator – part 11
12RSCG – Curry – Partial function – part 12
13RSCG- part 13 – IFormattable
14RSCG- part 14 – DP_Decorator
15RSCG- part 15 – Expression Generator
16RSCG- part 16 – Many Others
17RSCG- the book
18RSCG–Template Rendering- part 17
19CI Version
20HttpClientGenerator
21Query from database
22AutoRegister
23TinyTypes
24Static2Interface
25AppSettings
26Properties
27
Roslyn Source Code Generators