Redpoint.StringEnum 2025.1201.470

Prefix Reserved
dotnet add package Redpoint.StringEnum --version 2025.1201.470
                    
NuGet\Install-Package Redpoint.StringEnum -Version 2025.1201.470
                    
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="Redpoint.StringEnum" Version="2025.1201.470" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Redpoint.StringEnum" Version="2025.1201.470" />
                    
Directory.Packages.props
<PackageReference Include="Redpoint.StringEnum" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Redpoint.StringEnum --version 2025.1201.470
                    
#r "nuget: Redpoint.StringEnum, 2025.1201.470"
                    
#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.
#:package Redpoint.StringEnum@2025.1201.470
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Redpoint.StringEnum&version=2025.1201.470
                    
Install as a Cake Addin
#tool nuget:?package=Redpoint.StringEnum&version=2025.1201.470
                    
Install as a Cake Tool

Redpoint.StringEnum

This library provides an API for defining and using string-backed enumeration types. These are useful when used with databases, where storing string values for enumerations improves forward and backward compatibility (unlike storing numeric values).

Defining a string-backed enumeration type

You can create a string-backed enumeration, by defining a class like so:

class Example : StringEnum<Example>
{
    public static readonly StringEnumValue<Example> FirstValue = Create("first-value");

    public static readonly StringEnumValue<Example> SecondValue = Create("second-value");

    public static readonly StringEnumValue<Example> ThirdValue = Create("third-value");

    // ...
}

The string values that represent the enumeration are case-and-byte sensitive (ordinal comparison). You can not create enumeration values from a null string; ArgumentNullException will be thrown if you pass a null value to Create.

Defining additional enumeration values at runtime

There is currently no API for defining additional enumeration values at runtime; the possible enumeration values are lazy-loaded once by looking at the static fields and static properties of the class that inherits from StringEnum<T> (via the T type parameter). Both public and non-public fields/properties are included.

This library is both trim and AOT-compatible, as it uses [DynamicallyAccessedMembers] to ensure the fields and properties of the enumeration type are available at runtime for reflection.

Static usage of values

In most code, you'll simply use the static readonly fields you've defined, such as Example.FirstValue. All instances of the value - even those from parsing - are guaranteed to be reference and value equal.

Parsing known values from strings

To parse a value that is known to be valid from a string, you can use Example.Parse or StringEnumValue<Example>.Parse:

var value = Example.Parse("first-value");
var value2 = StringEnumValue<Example>.Parse("second-value");

If the value is not valid when calling Parse, StringEnumParseException will be thrown. You should use TryParse (see below) if the value is potentially invalid.

If you pass a null value to Parse, ArgumentNullException will be thrown.

Parsing potentially invalid string values

If you're unsure whether a string is a valid enumeration value, you can use Example.TryParse or StringEnumValue<Example>.TryParse:

var isValid = Example.TryParse("...", out var value);
var isValid2 = StringEnumValue<Example>.TryParse("...", out var value2);

If you pass a null value to TryParse, ArgumentNullException will be thrown.

Parsing strings to runtime-based enumeration types

If you don't know the type of the string enumeration you want to parse into at compile time, you can use DynamicStringEnumValue.TryParse to parse any string value into an instance of StringEnumValue<T> by passing the StringEnumValue<T> type as the first parameter, like so:

var type = typeof(StringEnumValue<Example>);
var isValid = DynamicStringEnumValue.TryParse(type, "...", out var value);

You can use DynamicStringEnumValue.IsStringEnumValueType to check if type is a constructed generic type of StringEnumValue<T>. The APIs provided by DynamicStringEnumValue are primarily intended to be used with database serialization and deserialization, where the concrete types of values are not known at the point of deserialization.

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net9.0

    • No dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Redpoint.StringEnum:

Package Downloads
Redpoint.CloudFramework

A framework for building ASP.NET Core applications on top of Google Cloud Firestore in Datastore mode. Not only does this framework provide a model-based API for interacting with Google Cloud Firestore, it contains useful implementations of things like database migrations, distributed locks, geographic indexes and sharded counters.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2025.1201.470 0 7/20/2025
2025.1199.287 88 7/18/2025
2025.1198.1048 105 7/17/2025
2025.1198.682 133 7/17/2025
2025.1198.638 108 7/17/2025
2025.1198.574 108 7/17/2025
2025.1198.187 114 7/17/2025
2025.1191.922 137 7/10/2025
2025.1191.235 126 7/10/2025
2025.1190.175 130 7/9/2025
2025.1189.851 132 7/8/2025
2025.1189.841 133 7/8/2025
2025.1187.587 185 7/6/2025
2025.1183.853 142 7/2/2025
2025.1181.644 133 6/30/2025
2025.1175.340 193 6/24/2025
2025.1174.62 152 6/23/2025
2025.1171.352 126 6/20/2025
2025.1169.413 149 6/18/2025
2025.1166.1191 156 6/15/2025
2025.1166.1178 136 6/15/2025
2025.1166.1177 138 6/15/2025
2025.1159.445 120 6/8/2025
2025.1159.364 112 6/8/2025
2025.1159.324 110 6/8/2025
2025.1155.438 149 6/4/2025
2025.1141.1424 151 5/21/2025
2025.1140.383 145 5/20/2025
2025.1140.377 150 5/20/2025
2025.1139.983 159 5/19/2025
2025.1139.952 154 5/19/2025
2025.1139.941 150 5/19/2025
2025.1139.855 141 5/19/2025
2025.1139.850 144 5/19/2025
2025.1139.837 144 5/19/2025
2025.1139.811 147 5/19/2025
2025.1139.806 149 5/19/2025
2025.1139.796 135 5/19/2025
2025.1139.729 142 5/19/2025
2025.1139.719 156 5/19/2025
2025.1139.706 155 5/19/2025
2025.1139.694 146 5/19/2025
2025.1139.679 149 5/19/2025
2025.1139.662 147 5/19/2025
2025.1139.638 144 5/19/2025
2025.1139.628 145 5/19/2025
2025.1139.626 144 5/19/2025
2025.1139.619 142 5/19/2025
2025.1139.605 147 5/19/2025
2025.1139.600 152 5/19/2025
2025.1139.583 146 5/19/2025
2025.1139.573 144 5/19/2025
2025.1139.564 146 5/19/2025
2025.1139.552 155 5/19/2025
2025.1139.543 152 5/19/2025
2025.1138.909 145 5/18/2025
2025.1136.150 206 5/16/2025
2025.1135.267 227 5/15/2025
2025.1135.143 225 5/15/2025
2025.1133.453 241 5/13/2025
2025.1133.351 233 5/13/2025
2025.1133.349 234 5/13/2025
2025.1133.347 246 5/13/2025
2025.1130.236 82 5/10/2025
2025.1129.831 119 5/9/2025
2025.1129.346 140 5/9/2025
2025.1129.345 137 5/9/2025
2025.1121.1370 162 5/1/2025
2025.1119.450 171 4/29/2025
2025.1119.436 163 4/29/2025
2025.1119.409 160 4/29/2025
2025.1119.388 165 4/29/2025
2025.1119.360 160 4/29/2025
2025.1119.328 176 4/29/2025
2025.1119.299 161 4/29/2025
2025.1119.287 164 4/29/2025
2025.1116.868 96 4/26/2025
2025.1116.841 86 4/26/2025
2025.1116.444 92 4/26/2025
2025.1115.498 134 4/25/2025
2025.1115.491 138 4/25/2025
2025.1100.365 188 4/10/2025
2025.1100.336 181 4/10/2025
2025.1100.331 185 4/10/2025
2025.1098.108 177 4/8/2025
2025.1093.291 188 4/3/2025
2025.1091.38 189 4/1/2025
2025.1091.26 190 4/1/2025
2025.1090.237 174 3/31/2025
2025.1089.1386 174 3/30/2025
2025.1083.515 421 3/24/2025
2025.1083.408 354 3/24/2025
2025.1083.398 353 3/24/2025
2025.1083.125 347 3/24/2025
2025.1080.41 163 3/21/2025
2025.1075.357 235 3/16/2025
2025.1073.332 154 3/14/2025
2025.1072.541 185 3/13/2025
2025.1072.536 164 3/13/2025
2025.1064.602 247 3/5/2025
2025.1064.546 224 3/5/2025
2025.1062.589 173 3/3/2025
2025.1061.513 128 3/2/2025
2025.1060.490 117 3/1/2025
2025.1059.134 129 2/28/2025
2025.1057.1020 126 2/26/2025
2025.1056.584 125 2/25/2025
2025.1050.282 144 2/19/2025
2025.1050.232 141 2/19/2025
2025.1049.55 153 2/18/2025
2025.1045.285 132 2/14/2025
2025.1043.288 118 2/12/2025
2025.1043.246 122 2/12/2025
2025.1043.197 127 2/12/2025
2025.1043.180 113 2/12/2025
2025.1043.108 114 2/12/2025
2025.1043.38 112 2/12/2025
2025.1043.27 113 2/12/2025
2025.1042.725 131 2/11/2025
2025.1042.690 120 2/11/2025
2025.1042.688 126 2/11/2025
2025.1042.418 119 2/11/2025
2025.1042.215 126 2/11/2025
2025.1042.203 122 2/11/2025
2025.1042.184 115 2/11/2025
2025.1042.142 126 2/11/2025
2025.1042.127 126 2/11/2025
2025.1037.1327 117 2/6/2025
2025.1036.280 124 2/5/2025
2025.1036.55 128 2/5/2025
2025.1035.1387 137 2/4/2025
2025.1031.111 132 1/31/2025
2025.1030.916 128 1/30/2025
2025.1030.895 132 1/30/2025
2025.1030.592 127 1/30/2025
2025.1029.664 109 1/29/2025
2025.1029.632 109 1/29/2025
2025.1029.596 112 1/29/2025
2025.1028.386 105 1/28/2025
2025.1025.723 110 1/25/2025
2025.1025.712 112 1/25/2025
2025.1019.913 118 1/19/2025
2025.1018.374 112 1/18/2025
2025.1018.285 148 1/18/2025
2025.1017.646 106 1/17/2025
2025.1017.379 140 1/17/2025
2025.1016.1370 118 1/16/2025
2025.1016.765 107 1/16/2025
2025.1016.712 114 1/16/2025
2025.1016.550 110 1/16/2025
2025.1016.541 113 1/16/2025
2025.1016.532 113 1/16/2025
2025.1016.325 106 1/16/2025
2025.1016.308 113 1/16/2025
2025.1016.296 105 1/16/2025
2025.1016.237 130 1/16/2025
2025.1016.184 105 1/16/2025
2025.1016.70 109 1/16/2025
2025.1016.6 110 1/16/2025
2025.1015.1438 109 1/16/2025
2025.1015.1437 107 1/16/2025
2025.1015.1411 106 1/15/2025
2025.1015.240 77 1/15/2025
2025.1015.223 69 1/15/2025
2025.1015.183 80 1/15/2025
2025.1014.1342 86 1/14/2025
2025.1014.273 93 1/14/2025
2025.1014.256 98 1/14/2025
2025.1012.440 98 1/12/2025
2025.1012.327 111 1/12/2025
2025.1012.279 107 1/12/2025
2025.1002.636 124 1/2/2025
2025.1001.1435 133 1/2/2025
2025.1001.1397 125 1/1/2025
2025.1001.770 126 1/1/2025
2025.1001.570 132 1/1/2025
2025.1001.558 119 1/1/2025
2025.1001.421 122 1/1/2025
2025.1001.390 125 1/1/2025
2025.1001.234 135 1/1/2025
2025.1001.123 130 1/1/2025
2024.1360.354 126 12/25/2024
2024.1360.60 116 12/25/2024
2024.1360.32 118 12/25/2024
2024.1358.450 117 12/23/2024
2024.1358.359 119 12/23/2024
2024.1358.312 112 12/23/2024
2024.1358.244 125 12/23/2024
2024.1358.120 111 12/23/2024
2024.1348.253 132 12/13/2024
2024.1345.1379 108 12/10/2024
2024.1345.506 109 12/10/2024
2024.1345.379 108 12/10/2024
2024.1345.145 107 12/10/2024
2024.1345.72 113 12/10/2024
2024.1345.69 104 12/10/2024
2024.1345.15 113 12/10/2024
2024.1344.1436 109 12/10/2024
2024.1344.600 121 12/9/2024
2024.1344.411 120 12/9/2024
2024.1340.379 120 12/5/2024
2024.1340.15 130 12/5/2024
2024.1338.786 126 12/3/2024
2024.1338.722 130 12/3/2024
2024.1338.697 118 12/3/2024
2024.1338.639 125 12/3/2024
2024.1338.541 125 12/3/2024
2024.1338.318 115 12/3/2024
2024.1338.298 118 12/3/2024
2024.1338.98 123 12/3/2024
2024.1337.756 126 12/2/2024
2024.1337.634 125 12/2/2024
2024.1337.625 110 12/2/2024
2024.1337.621 119 12/2/2024
2024.1337.594 116 12/2/2024
2024.1337.136 107 12/2/2024
2024.1336.793 129 12/1/2024
2024.1336.773 126 12/1/2024
2024.1336.305 117 12/1/2024
2024.1336.12 134 12/1/2024
2024.1335.1421 123 11/30/2024
2024.1335.1384 122 11/30/2024
2024.1334.1308 126 11/29/2024
2024.1334.764 115 11/29/2024
2024.1334.722 125 11/29/2024
2024.1330.185 120 11/25/2024
2024.1328.505 129 11/23/2024
2024.1328.470 116 11/23/2024
2024.1328.452 121 11/23/2024
2024.1323.910 129 11/18/2024
2024.1323.653 115 11/18/2024
2024.1323.185 113 11/18/2024
2024.1323.49 110 11/18/2024
2024.1322.714 110 11/17/2024
2024.1320.653 121 11/15/2024
2024.1320.619 109 11/15/2024
2024.1320.601 106 11/15/2024
2024.1320.159 112 11/15/2024
2024.1320.98 113 11/15/2024
2024.1320.2 122 11/15/2024
2024.1319.1431 122 11/15/2024
2024.1319.1335 119 11/14/2024
2024.1317.631 122 11/12/2024
2024.1316.330 132 11/11/2024
2024.1311.540 121 11/6/2024
2024.1306.225 116 11/1/2024
2024.1306.199 126 11/1/2024
2024.1306.171 124 11/1/2024
2024.1306.117 129 11/1/2024
2024.1305.506 116 10/31/2024
2024.1305.502 113 10/31/2024
2024.1305.465 111 10/31/2024
2024.1305.442 115 10/31/2024
2024.1305.399 113 10/31/2024
2024.1299.1070 121 10/25/2024
2024.1289.621 133 10/15/2024
2024.1289.338 119 10/15/2024
2024.1277.836 122 10/5/2024
2024.1277.711 123 10/3/2024
2024.1277.695 118 10/3/2024
2024.1270.409 137 9/26/2024
2024.1269.621 138 9/25/2024
2024.1269.619 120 9/25/2024
2024.1269.605 131 9/25/2024
2024.1242.282 137 8/29/2024
2024.1242.261 134 8/29/2024
2024.1242.233 143 8/29/2024
2024.1238.829 149 8/25/2024
2024.1238.327 149 8/25/2024
2024.1225.297 140 8/12/2024
2024.1205.140 135 7/23/2024
2024.1204.110 141 7/22/2024
2024.1204.62 129 7/22/2024
2024.1190.491 141 7/8/2024
2024.1177.305 137 6/25/2024
2024.1168.700 150 6/16/2024
2024.1168.649 138 6/16/2024
2024.1168.535 146 6/16/2024
2024.1167.643 137 6/15/2024
2024.1166.989 136 6/14/2024
2024.1166.818 133 6/14/2024
2024.1166.535 141 6/14/2024
2024.1166.422 134 6/14/2024
2024.1166.362 135 6/14/2024
2024.1166.360 139 6/14/2024
2024.1165.1212 137 6/13/2024
2024.1165.1160 132 6/13/2024
2024.1165.1019 135 6/13/2024
2024.1165.978 136 6/13/2024
2024.1165.920 133 6/13/2024
2024.1165.908 148 6/13/2024
2024.1165.873 139 6/13/2024
2024.1165.830 134 6/13/2024
2024.1165.806 135 6/13/2024
2024.1165.794 139 6/13/2024
2024.1165.792 145 6/13/2024
2024.1165.761 139 6/13/2024
2024.1165.743 137 6/13/2024
2024.1165.735 141 6/13/2024
2024.1165.713 139 6/13/2024
2024.1165.640 127 6/13/2024
2024.1165.574 143 6/13/2024
2024.1165.466 130 6/13/2024
2024.1165.417 134 6/13/2024
2024.1165.392 135 6/13/2024
2024.1164.341 126 6/12/2024
2024.1155.941 149 6/3/2024
2024.1140.783 151 5/19/2024
2024.1140.692 135 5/19/2024
2024.1140.673 141 5/19/2024
2024.1129.506 143 5/8/2024
2024.1128.831 154 5/7/2024
2024.1124.465 120 5/3/2024
2024.1123.1162 128 5/2/2024
2024.1123.1117 112 5/2/2024
2024.1123.1050 101 5/2/2024
2024.1122.352 140 5/1/2024
2024.1122.233 141 5/1/2024
2024.1115.1101 142 4/24/2024
2024.1115.1048 126 4/24/2024
2024.1115.932 130 4/24/2024
2024.1115.858 141 4/24/2024
2024.1115.665 142 4/24/2024
2024.1115.648 134 4/24/2024
2024.1115.591 143 4/24/2024
2024.1101.390 140 4/10/2024
2024.1100.741 149 4/9/2024
2024.1099.526 146 4/8/2024
2024.1099.466 144 4/8/2024
2024.1098.573 144 4/7/2024
2024.1095.977 143 4/4/2024
2024.1095.847 138 4/4/2024
2024.1095.604 145 4/4/2024
2024.1095.485 163 4/4/2024
2024.1094.930 139 4/3/2024
2024.1094.910 151 4/3/2024
2024.1094.387 155 4/3/2024
2024.1094.313 140 4/3/2024
2024.1093.520 141 4/2/2024
2024.1092.240 139 4/1/2024
2024.1089.1425 152 3/29/2024
2024.1089.983 147 3/29/2024
2024.1089.942 133 3/29/2024
2024.1089.2 148 3/29/2024
2024.1088.1343 138 3/28/2024
2024.1088.1139 147 3/28/2024
2024.1088.875 116 3/28/2024
2024.1088.700 128 3/28/2024
2024.1088.603 147 3/28/2024
2024.1088.590 150 3/28/2024
2024.1088.575 141 3/28/2024
2024.1088.561 148 3/28/2024
2024.1088.506 150 3/28/2024
2024.1088.18 151 3/28/2024
2024.1087.1181 161 3/27/2024
2024.1087.1173 149 3/27/2024
2024.1087.1143 150 3/27/2024
2024.1087.1108 131 3/27/2024
2024.1087.950 149 3/27/2024
2024.1087.939 138 3/27/2024
2024.1087.252 148 3/27/2024
2024.1070.736 146 3/10/2024
2024.1049.1437 155 2/19/2024
2024.1036.571 153 2/5/2024
2024.1036.508 138 2/5/2024
2024.1032.1204 143 2/1/2024
2024.1032.1133 141 2/1/2024
2024.1032.1122 163 2/1/2024
2024.1032.1071 132 2/1/2024
2024.1032.940 136 2/1/2024
2024.1031.912 134 1/31/2024
2024.1031.893 134 1/31/2024
2024.1031.851 124 1/31/2024
2024.1031.829 132 1/31/2024
2024.1031.386 131 1/31/2024
2024.1031.318 149 1/31/2024
2024.1017.460 160 1/17/2024
2024.1017.420 135 1/17/2024
2024.1017.163 135 1/17/2024
2024.1016.414 670 1/16/2024
2024.1012.167 155 1/12/2024
2024.1011.406 149 1/11/2024
2024.1010.315 165 1/10/2024
2023.1358.326 191 12/24/2023
2023.1351.473 156 12/17/2023
2023.1351.445 155 12/17/2023
2023.1351.432 164 12/17/2023
2023.1350.478 158 12/16/2023
2023.1344.600 173 12/10/2023
2023.1344.529 214 12/10/2023
2023.1339.582 173 12/5/2023
2023.1338.1072 176 12/4/2023
2023.1336.844 174 12/2/2023
2023.1335.378 168 12/1/2023
2023.1335.236 164 12/1/2023
2023.1335.203 160 12/1/2023