RD.Extensions.Enum
1.0.4
dotnet add package RD.Extensions.Enum --version 1.0.4
NuGet\Install-Package RD.Extensions.Enum -Version 1.0.4
<PackageReference Include="RD.Extensions.Enum" Version="1.0.4" />
<PackageVersion Include="RD.Extensions.Enum" Version="1.0.4" />
<PackageReference Include="RD.Extensions.Enum" />
paket add RD.Extensions.Enum --version 1.0.4
#r "nuget: RD.Extensions.Enum, 1.0.4"
#:package RD.Extensions.Enum@1.0.4
#addin nuget:?package=RD.Extensions.Enum&version=1.0.4
#tool nuget:?package=RD.Extensions.Enum&version=1.0.4
RD.Extensions.Enums
This project provides a set of utilities to work with enums in .NET. It includes methods for retrieving various types of values (string, integer, double, etc.) from enum values. Also it caches the values for better performance.
Installation
Install the nuget package RD.Extensions.Enums from nuget.org.
Usage
enum MyEnum
{
[StringValue("Value1")]
[IntegerValue(1)]
[LongValue(1)]
[DoubleValue(5.5)]
[BooleanValue(true)]
[KeyValuePair("keyOne", "valueOne")]
[KeyValuePair("keyTwo", "valueTwo")]
MyValue
}
IEnumCache enumCache = new EnumCache();
enumCache.GetStringValue(MyEnum.MyValue); // returns "Value1"
enumCache.GetIntegerValue(MyEnum.MyValue); // returns 1
enumCache.GetLongValue(MyEnum.MyValue); // returns 1
enumCache.GetDoubleValue(MyEnum.MyValue); // returns 5.5
enumCache.GetBooleanValue(MyEnum.MyValue); // returns true
enumCache.GetKeyValuePairs(MyEnum.MyValue); // returns a List<KeyValuePair<string, object>>
enumCache.GetEnumValueByAttributeValue<MyEnum, string>("Value1"); // returns MyEnum.MyValue
Caching Mechanism
The EnumCache class uses a caching mechanism to improve performance when retrieving values
associated with an Enum. The EnumCache class provides provides multiple caching methods that allow you to cache values associated with an Enum value.
The caching method can be configured in the EnumCacheOptions class.
It exists the following caching methods:
CacheExplicitly- caches the values explicitly by calling theCacheValueorCacheEnummethod.CacheValueIfUsed- caches the value when it is retrieved for the first time.CacheEntireEnumWhenFirstUsed- caches the entire enum when the first value is retrieved.
Tips
- When using
GetEnumValueByAttributeValueandCachingMethod.CacheValueIfUsedthat won't work, because you are searching the value and can not cache it. Also you must cache the enum first with.CacheEnum<Enum>();or usingCachingMethod.CacheEntireEnumWhenFirstUsed.
Contributing
If you want to contribute to this project, please create a pull request with your changes.
License
The project is licensed under the MIT license. You can find the license here.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- No dependencies.
NuGet packages (2)
Showing the top 2 NuGet packages that depend on RD.Extensions.Enum:
| Package | Downloads |
|---|---|
|
RD.TMDB.Client
TMDB API Wrapper for .NET |
|
|
RD.MediaInfo
Simple and lightweight .NET Wrapper for MediaInfo |
GitHub repositories
This package is not used by any popular GitHub repositories.
Added options to define the caching method. Added methods to check if an enum is cached.