提供对枚举自动生成描述信息的源生成器:
[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(),
};
}
}
提供对枚举自动生成描述信息的源生成器:
生成的代码如下: