Skip to content

Support AutoDescription #11

@vipwan

Description

@vipwan

提供对枚举自动生成描述信息的源生成器:

[AutoDescription]
public enum ColorEnum
{
    [Description("Red Color")]
    Red,
    [Display(Name = "White Color")] //eq Description
    White,
    LightBlue, //tostring()
}

[AutoDescription]
public enum AnimalEnum
{
    [Description("Dog")]
    Dog,
    [Description("Cat")]
    Cat,
}

生成的代码如下:

// <auto-generated/>
using System;

namespace System
{
    /// <summary>
    /// Auto-generated extensions for enum descriptions
    /// </summary>
    [global::System.CodeDom.Compiler.GeneratedCode("Biwen.AutoClassGen", "1.8.1")]
    public static partial class EnumDescriptionExtensions
    {
        /// <summary>
        /// Gets the description for Biwen.AutoClassGen.TestConsole.AnimalEnum value
        /// </summary>
        /// <param name = "val">The enum value</param>
        /// <returns>The description string</returns>
        public static string Description(this Biwen.AutoClassGen.TestConsole.AnimalEnum val) => val switch
        {
            Biwen.AutoClassGen.TestConsole.AnimalEnum.Dog => "Dog",
            Biwen.AutoClassGen.TestConsole.AnimalEnum.Cat => "Cat",
            _ => val.ToString(),
        };
        /// <summary>
        /// Gets the description for Biwen.AutoClassGen.TestConsole.ColorEnum value
        /// </summary>
        /// <param name = "val">The enum value</param>
        /// <returns>The description string</returns>
        public static string Description(this Biwen.AutoClassGen.TestConsole.ColorEnum val) => val switch
        {
            Biwen.AutoClassGen.TestConsole.ColorEnum.Red => "Red Color",
            Biwen.AutoClassGen.TestConsole.ColorEnum.White => "White Color",
            Biwen.AutoClassGen.TestConsole.ColorEnum.LightBlue => "LightBlue",
            _ => val.ToString(),
        };
    }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions