EnumExtensions 1.0.2

dotnet add package EnumExtensions --version 1.0.2
NuGet\Install-Package EnumExtensions -Version 1.0.2
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="EnumExtensions" Version="1.0.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add EnumExtensions --version 1.0.2
#r "nuget: EnumExtensions, 1.0.2"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install EnumExtensions as a Cake Addin
#addin nuget:?package=EnumExtensions&version=1.0.2

// Install EnumExtensions as a Cake Tool
#tool nuget:?package=EnumExtensions&version=1.0.2

EnumExtensions

An enum extension that allows to use custom attributes to extend enum metadata.

Get it

PM> Install-Package EnumExtensions

Basic usage

Create custom attributes
public class StatusEnumMetadata : Attribute
{
    public string Code { get; set; }
    public string Description { get; set; }
    public string Color { get; set; }
    public int Order { get; set; }
}
Create an enum with custom attributes
public enum StatusEnum
  {
    [StatusEnumMetadata(Code = "200",
      Description =
        "OK indicates that the request succeeded and that the requested information is in the response. This is the most common status code to receive.",
      Color = "#69f0ae", Order = 1)]
    OK,

    [StatusEnumMetadata(Code = "201",
      Description = "Accepted indicates that the request has been accepted for further processing.", Color = "#00e676",
      Order = 3)]
    Accepted,

    [StatusEnumMetadata(Code = "300",
      Description =
        "Ambiguous indicates that the requested information has multiple representations. The default action is to treat this status as a redirect and follow the contents of the Location header associated with this response. Ambiguous is a synonym for MultipleChoices.",
      Color = "#00c853", Order = 2)]
    Ambiguous,

    [StatusEnumMetadata(Code = "502",
      Description =
        "BadGateway indicates that an intermediate proxy server received a bad response from another proxy or the origin server.",
      Order = 5)]
    BadGateway,

    [StatusEnumMetadata(Code = "400",
      Description =
        "BadRequest indicates that the request could not be understood by the server. BadRequest is sent when no other error is applicable, or if the exact error is unknown or does not have its own error code.",
      Color = "#7c27b0")]
    BadRequest
}
Get enum metadata
    StatusEnum okStatus = StatusEnum.OK;

    var code = okStatus.GetAttributeOfType<StatusEnumMetadata>()?.Code;
    var description = okStatus.GetAttributeOfType<StatusEnumMetadata>()?.Description;
    var color = okStatus.GetAttributeOfType<StatusEnumMetadata>()?.Color;
    var order = okStatus.GetAttributeOfType<StatusEnumMetadata>()?.Order;
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETStandard 2.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.2 1,728 1/14/2022
1.0.1 226 1/14/2022
1.0.0 206 1/14/2022