MbSoftLab.StringEnums
1.0.1
See the version list below for details.
dotnet add package MbSoftLab.StringEnums --version 1.0.1
NuGet\Install-Package MbSoftLab.StringEnums -Version 1.0.1
<PackageReference Include="MbSoftLab.StringEnums" Version="1.0.1" />
<PackageVersion Include="MbSoftLab.StringEnums" Version="1.0.1" />
<PackageReference Include="MbSoftLab.StringEnums" />
paket add MbSoftLab.StringEnums --version 1.0.1
#r "nuget: MbSoftLab.StringEnums, 1.0.1"
#:package MbSoftLab.StringEnums@1.0.1
#addin nuget:?package=MbSoftLab.StringEnums&version=1.0.1
#tool nuget:?package=MbSoftLab.StringEnums&version=1.0.1
MbSoftLab.StringEnums
Description
MbSoftLab.StringEnums is a lightweight .NET library that allows you to decorate enum members with custom string values. Perfect for associating enums with display names, CSS classes, API values, or any other string representation.
Features
- 🏷️ Simple String Values - Attach string values using
[StringValue]attribute - 🔄 Conditional Values - Return different strings based on conditions with
[ConditionalStringValue] - 🔧 Extensible - Create your own custom attributes
- 📦 Lightweight - No external dependencies, targets .NET Standard 2.0
Installation
dotnet add package MbSoftLab.StringEnums
Or via NuGet Package Manager:
Install-Package MbSoftLab.StringEnums
Quick Start
Simple StringValues for Enums
// The enum
public enum MyEnum
{
[StringValue("my-css-class-1")]
Class1,
[StringValue("my-css-class-2")]
Class2
}
Console.WriteLine(MyEnum.Class1.GetStringValue()); // output: my-css-class-1
Console.WriteLine(MyEnum.Class2.GetStringValue()); // output: my-css-class-2
Custom StringValue Attributes
using System;
namespace MbSoftLab.StringEnums.Demo
{
public class CssClassAttribute : StringValueAttribute
{
public CssClassAttribute(string value) : base(value) { }
}
public static class CssClassEnumExtension
{
// Your concrete EnumExtension
public static string GetCssClass(this Enum value)
{
return value.GetValueFromAttribute<CssClassAttribute>();
}
}
// The enum
public enum MyEnum
{
[StringValue("i am a string")]
[CssClass("my-css-class-1")]
Class1,
[CssClass("my-css-class-2")]
Class2
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine(MyEnum.Class1.GetStringValue()); // output: i am a string
Console.WriteLine(MyEnum.Class1.GetCssClass()); // output: my-css-class-1
Console.WriteLine(MyEnum.Class2.GetCssClass()); // output: my-css-class-2
Console.ReadKey();
}
}
}
Conditional String Values
Return different strings based on a boolean condition:
public enum ToggleState
{
[ConditionalStringValue("enabled", "disabled")]
Power
}
// Usage
Console.WriteLine(ToggleState.Power.GetStringValueByCondition(true)); // output: enabled
Console.WriteLine(ToggleState.Power.GetStringValueByCondition(false)); // output: disabled
Documentation
For detailed documentation, see:
- 📖 Full Documentation
- 🚀 Quick Start Guide
- 📚 API Reference
- 🔧 Advanced Usage
- 🏗️ Architecture
- 📝 Changelog
- 🎉 Release Notes
Compatibility
| Target Framework | Supported |
|---|---|
| .NET Standard 2.0 | ✅ |
| .NET Core 2.0+ | ✅ |
| .NET 5.0+ | ✅ |
| .NET Framework 4.6.1+ | ✅ |
License
This project is licensed under the MIT License - see the LICENSE file for details.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
| 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. 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. |
| .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.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.2 | 196 | 11/28/2025 |
| 1.0.1 | 178 | 11/26/2025 |
| 1.0.0 | 173 | 11/26/2025 |
| 0.0.1 | 21,142 | 5/2/2021 |
| 0.0.1-preview2 | 362 | 5/2/2021 |
| 0.0.1-preview | 356 | 5/2/2021 |
This is the first release