CodeCraft.EnumExtension
1.0.1
No License
See the version list below for details.
dotnet add package CodeCraft.EnumExtension --version 1.0.1
NuGet\Install-Package CodeCraft.EnumExtension -Version 1.0.1
<PackageReference Include="CodeCraft.EnumExtension" Version="1.0.1" />
paket add CodeCraft.EnumExtension --version 1.0.1
#r "nuget: CodeCraft.EnumExtension, 1.0.1"
// Install CodeCraft.EnumExtension as a Cake Addin
#addin nuget:?package=CodeCraft.EnumExtension&version=1.0.1
// Install CodeCraft.EnumExtension as a Cake Tool
#tool nuget:?package=CodeCraft.EnumExtension&version=1.0.1
CodeCraft.EnumExtension V1.0.0
this package allow to retrieve any attributes apply on enum values.
Usages
An enum ETestEnum on which Description attributes and Custom attributes (MyDescriptionAttribute) have been tagged on enum values.
public class MyDescriptionAttribute : Attribute
{
public int Numerical { get; }
public string Literal { get; }
public MyDescriptionAttribute(int numerical, string literal)
{
Numerical = numerical;
Literal = literal;
}
}
public enum ETestEnum
{
[MyDescription(1, "One")]
[Description("First enum")]
First,
[MyDescription(2, "Two")]
[Description("Second enum")]
Second,
[MyDescription(3, "Three")]
[Description("Third enum")]
Third
}
With enum values
this package contains two extensions to retrieve attributes on a specific enum values
Retrieve Description:
Method:
string DescriptionAttribute(this Enum source);
use case:
var description = ETestEnum.First.DescriptionAttribute();
Retrieve Custom Attribute:
Method:
TResult SpecificAttribute<TResult>(this Enum source)
where TResult : Attribute
use case:
var MyCustomAttribute = ETestEnum.First.SpecificAttribute<MyDescriptionAttribute>();
With enum Types
This package contains four extensions to retrieve attributes on a specific enum Type.
Descriptions
Two methods for the most use DescriptionAttribute
- Retrieve an enumarable of all Descriptions
- Retrieve an enumerable of key value pair that contains enum value and associated description.
Methods:
IEnumerable<string> GetDescriptions();
IEnumerable<KeyValuePair<E, string>> GetEnumDescriptionPairs();
Use case :
var allDescriptions = Enum<ETestEnum>.GetDescriptions();
var pairs = Enum<ETestEnum>.GetEnumDescriptionPairs();
Custom attributes
Two methods for CustomAttributes. In all method TResult template inherits from Attribute
- Retrieve an enumarable of all CustomAttributes
- Retrieve an enumerable of key value pair that contains enum value and associated CustomAttributes.
Methods:
IEnumerable<TResult> GetAttributes<TResult>()
IEnumerable<KeyValuePair<E, TResult>> GetEnumAttributePairs<TResult>()
Use case :
var allCustomAttributes= Enum<ETestEnum>.GetAttributes<MyDescriptionAttribute>();
var pairs = Enum<ETestEnum>.GetEnumAttributePairs<MyDescriptionAttribute>();
Retrieve all values
One method allow to retrieve all values of enumerator.
IEnumerable<ETestEnum> allValues = Enum<ETestEnum>.GetValues();
It's equivalent to
Enum.GetValues(typeof(E))
Product | Versions 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. |
-
.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.
v1.0.0 : Original version
v1.0.1: Update package informations