Redpoint.StringEnum 2025.1135.267

Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
dotnet add package Redpoint.StringEnum --version 2025.1135.267
                    
NuGet\Install-Package Redpoint.StringEnum -Version 2025.1135.267
                    
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.1135.267" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Redpoint.StringEnum" Version="2025.1135.267" />
                    
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.1135.267
                    
#r "nuget: Redpoint.StringEnum, 2025.1135.267"
                    
#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.1135.267
                    
#: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.1135.267
                    
Install as a Cake Addin
#tool nuget:?package=Redpoint.StringEnum&version=2025.1135.267
                    
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.1191.922 105 7/10/2025
2025.1191.235 107 7/10/2025
2025.1190.175 125 7/9/2025
2025.1189.851 125 7/8/2025
2025.1189.841 128 7/8/2025
2025.1187.587 168 7/6/2025
2025.1183.853 140 7/2/2025
2025.1181.644 131 6/30/2025
2025.1175.340 191 6/24/2025
2025.1174.62 147 6/23/2025
2025.1171.352 123 6/20/2025
2025.1169.413 144 6/18/2025
2025.1166.1191 154 6/15/2025
2025.1166.1178 134 6/15/2025
2025.1166.1177 136 6/15/2025
2025.1159.445 117 6/8/2025
2025.1159.364 109 6/8/2025
2025.1159.324 107 6/8/2025
2025.1155.438 146 6/4/2025
2025.1141.1424 148 5/21/2025
2025.1140.383 141 5/20/2025
2025.1140.377 147 5/20/2025
2025.1139.983 154 5/19/2025
2025.1139.952 151 5/19/2025
2025.1139.941 145 5/19/2025
2025.1139.855 138 5/19/2025
2025.1139.850 140 5/19/2025
2025.1139.837 141 5/19/2025
2025.1139.811 142 5/19/2025
2025.1139.806 146 5/19/2025
2025.1139.796 132 5/19/2025
2025.1139.729 138 5/19/2025
2025.1139.719 153 5/19/2025
2025.1139.706 152 5/19/2025
2025.1139.694 141 5/19/2025
2025.1139.679 145 5/19/2025
2025.1139.662 143 5/19/2025
2025.1139.638 139 5/19/2025
2025.1139.628 142 5/19/2025
2025.1139.626 140 5/19/2025
2025.1139.619 139 5/19/2025
2025.1139.605 143 5/19/2025
2025.1139.600 146 5/19/2025
2025.1139.583 142 5/19/2025
2025.1139.573 140 5/19/2025
2025.1139.564 142 5/19/2025
2025.1139.552 151 5/19/2025
2025.1139.543 147 5/19/2025
2025.1138.909 142 5/18/2025
2025.1136.150 203 5/16/2025
2025.1135.267 222 5/15/2025
2025.1135.143 222 5/15/2025
2025.1133.453 236 5/13/2025
2025.1133.351 229 5/13/2025
2025.1133.349 230 5/13/2025
2025.1133.347 242 5/13/2025
2025.1130.236 79 5/10/2025
2025.1129.831 115 5/9/2025
2025.1129.346 137 5/9/2025
2025.1129.345 132 5/9/2025
2025.1121.1370 159 5/1/2025
2025.1119.450 166 4/29/2025
2025.1119.436 159 4/29/2025
2025.1119.409 157 4/29/2025
2025.1119.388 161 4/29/2025
2025.1119.360 157 4/29/2025
2025.1119.328 173 4/29/2025
2025.1119.299 158 4/29/2025
2025.1119.287 160 4/29/2025
2025.1116.868 92 4/26/2025
2025.1116.841 82 4/26/2025
2025.1116.444 88 4/26/2025
2025.1115.498 130 4/25/2025
2025.1115.491 135 4/25/2025
2025.1100.365 184 4/10/2025
2025.1100.336 178 4/10/2025
2025.1100.331 181 4/10/2025
2025.1098.108 173 4/8/2025
2025.1093.291 185 4/3/2025
2025.1091.38 185 4/1/2025
2025.1091.26 186 4/1/2025
2025.1090.237 171 3/31/2025
2025.1089.1386 170 3/30/2025
2025.1083.515 418 3/24/2025
2025.1083.408 351 3/24/2025
2025.1083.398 348 3/24/2025
2025.1083.125 344 3/24/2025
2025.1080.41 157 3/21/2025
2025.1075.357 232 3/16/2025
2025.1073.332 151 3/14/2025
2025.1072.541 179 3/13/2025
2025.1072.536 159 3/13/2025
2025.1064.602 243 3/5/2025
2025.1064.546 221 3/5/2025
2025.1062.589 170 3/3/2025
2025.1061.513 124 3/2/2025
2025.1060.490 114 3/1/2025
2025.1059.134 126 2/28/2025
2025.1057.1020 121 2/26/2025
2025.1056.584 121 2/25/2025
2025.1050.282 139 2/19/2025
2025.1050.232 136 2/19/2025
2025.1049.55 149 2/18/2025
2025.1045.285 128 2/14/2025
2025.1043.288 114 2/12/2025
2025.1043.246 118 2/12/2025
2025.1043.197 124 2/12/2025
2025.1043.180 110 2/12/2025
2025.1043.108 111 2/12/2025
2025.1043.38 109 2/12/2025
2025.1043.27 110 2/12/2025
2025.1042.725 126 2/11/2025
2025.1042.690 116 2/11/2025
2025.1042.688 121 2/11/2025
2025.1042.418 115 2/11/2025
2025.1042.215 121 2/11/2025
2025.1042.203 119 2/11/2025
2025.1042.184 112 2/11/2025
2025.1042.142 123 2/11/2025
2025.1042.127 121 2/11/2025
2025.1037.1327 114 2/6/2025
2025.1036.280 120 2/5/2025
2025.1036.55 125 2/5/2025
2025.1035.1387 134 2/4/2025
2025.1031.111 129 1/31/2025
2025.1030.916 123 1/30/2025
2025.1030.895 130 1/30/2025
2025.1030.592 125 1/30/2025
2025.1029.664 107 1/29/2025
2025.1029.632 105 1/29/2025
2025.1029.596 110 1/29/2025
2025.1028.386 103 1/28/2025
2025.1025.723 106 1/25/2025
2025.1025.712 110 1/25/2025
2025.1019.913 114 1/19/2025
2025.1018.374 109 1/18/2025
2025.1018.285 145 1/18/2025
2025.1017.646 104 1/17/2025
2025.1017.379 136 1/17/2025
2025.1016.1370 115 1/16/2025
2025.1016.765 105 1/16/2025
2025.1016.712 109 1/16/2025
2025.1016.550 108 1/16/2025
2025.1016.541 110 1/16/2025
2025.1016.532 110 1/16/2025
2025.1016.325 104 1/16/2025
2025.1016.308 110 1/16/2025
2025.1016.296 102 1/16/2025
2025.1016.237 126 1/16/2025
2025.1016.184 102 1/16/2025
2025.1016.70 106 1/16/2025
2025.1016.6 108 1/16/2025
2025.1015.1438 106 1/16/2025
2025.1015.1437 103 1/16/2025
2025.1015.1411 104 1/15/2025
2025.1015.240 75 1/15/2025
2025.1015.223 66 1/15/2025
2025.1015.183 75 1/15/2025
2025.1014.1342 83 1/14/2025
2025.1014.273 91 1/14/2025
2025.1014.256 96 1/14/2025
2025.1012.440 96 1/12/2025
2025.1012.327 109 1/12/2025
2025.1012.279 104 1/12/2025
2025.1002.636 120 1/2/2025
2025.1001.1435 129 1/2/2025
2025.1001.1397 120 1/1/2025
2025.1001.770 121 1/1/2025
2025.1001.570 129 1/1/2025
2025.1001.558 115 1/1/2025
2025.1001.421 119 1/1/2025
2025.1001.390 121 1/1/2025
2025.1001.234 132 1/1/2025
2025.1001.123 125 1/1/2025
2024.1360.354 123 12/25/2024
2024.1360.60 114 12/25/2024
2024.1360.32 115 12/25/2024
2024.1358.450 113 12/23/2024
2024.1358.359 116 12/23/2024
2024.1358.312 109 12/23/2024
2024.1358.244 120 12/23/2024
2024.1358.120 109 12/23/2024
2024.1348.253 129 12/13/2024
2024.1345.1379 106 12/10/2024
2024.1345.506 106 12/10/2024
2024.1345.379 104 12/10/2024
2024.1345.145 105 12/10/2024
2024.1345.72 110 12/10/2024
2024.1345.69 102 12/10/2024
2024.1345.15 111 12/10/2024
2024.1344.1436 107 12/10/2024
2024.1344.600 117 12/9/2024
2024.1344.411 118 12/9/2024
2024.1340.379 118 12/5/2024
2024.1340.15 127 12/5/2024
2024.1338.786 124 12/3/2024
2024.1338.722 127 12/3/2024
2024.1338.697 116 12/3/2024
2024.1338.639 122 12/3/2024
2024.1338.541 121 12/3/2024
2024.1338.318 113 12/3/2024
2024.1338.298 115 12/3/2024
2024.1338.98 121 12/3/2024
2024.1337.756 123 12/2/2024
2024.1337.634 122 12/2/2024
2024.1337.625 108 12/2/2024
2024.1337.621 116 12/2/2024
2024.1337.594 114 12/2/2024
2024.1337.136 104 12/2/2024
2024.1336.793 127 12/1/2024
2024.1336.773 123 12/1/2024
2024.1336.305 113 12/1/2024
2024.1336.12 132 12/1/2024
2024.1335.1421 121 11/30/2024
2024.1335.1384 120 11/30/2024
2024.1334.1308 123 11/29/2024
2024.1334.764 113 11/29/2024
2024.1334.722 122 11/29/2024
2024.1330.185 118 11/25/2024
2024.1328.505 126 11/23/2024
2024.1328.470 113 11/23/2024
2024.1328.452 117 11/23/2024
2024.1323.910 126 11/18/2024
2024.1323.653 111 11/18/2024
2024.1323.185 110 11/18/2024
2024.1323.49 107 11/18/2024
2024.1322.714 108 11/17/2024
2024.1320.653 118 11/15/2024
2024.1320.619 107 11/15/2024
2024.1320.601 104 11/15/2024
2024.1320.159 110 11/15/2024
2024.1320.98 111 11/15/2024
2024.1320.2 120 11/15/2024
2024.1319.1431 119 11/15/2024
2024.1319.1335 117 11/14/2024
2024.1317.631 120 11/12/2024
2024.1316.330 128 11/11/2024
2024.1311.540 118 11/6/2024
2024.1306.225 114 11/1/2024
2024.1306.199 124 11/1/2024
2024.1306.171 120 11/1/2024
2024.1306.117 126 11/1/2024
2024.1305.506 111 10/31/2024
2024.1305.502 110 10/31/2024
2024.1305.465 109 10/31/2024
2024.1305.442 111 10/31/2024
2024.1305.399 111 10/31/2024
2024.1299.1070 118 10/25/2024
2024.1289.621 131 10/15/2024
2024.1289.338 116 10/15/2024
2024.1277.836 120 10/5/2024
2024.1277.711 121 10/3/2024
2024.1277.695 115 10/3/2024
2024.1270.409 134 9/26/2024
2024.1269.621 133 9/25/2024
2024.1269.619 118 9/25/2024
2024.1269.605 128 9/25/2024
2024.1242.282 133 8/29/2024
2024.1242.261 129 8/29/2024
2024.1242.233 139 8/29/2024
2024.1238.829 147 8/25/2024
2024.1238.327 147 8/25/2024
2024.1225.297 137 8/12/2024
2024.1205.140 132 7/23/2024
2024.1204.110 138 7/22/2024
2024.1204.62 127 7/22/2024
2024.1190.491 139 7/8/2024
2024.1177.305 134 6/25/2024
2024.1168.700 148 6/16/2024
2024.1168.649 136 6/16/2024
2024.1168.535 142 6/16/2024
2024.1167.643 135 6/15/2024
2024.1166.989 133 6/14/2024
2024.1166.818 131 6/14/2024
2024.1166.535 139 6/14/2024
2024.1166.422 132 6/14/2024
2024.1166.362 132 6/14/2024
2024.1166.360 137 6/14/2024
2024.1165.1212 134 6/13/2024
2024.1165.1160 130 6/13/2024
2024.1165.1019 133 6/13/2024
2024.1165.978 132 6/13/2024
2024.1165.920 127 6/13/2024
2024.1165.908 144 6/13/2024
2024.1165.873 136 6/13/2024
2024.1165.830 129 6/13/2024
2024.1165.806 133 6/13/2024
2024.1165.794 137 6/13/2024
2024.1165.792 143 6/13/2024
2024.1165.761 137 6/13/2024
2024.1165.743 133 6/13/2024
2024.1165.735 138 6/13/2024
2024.1165.713 137 6/13/2024
2024.1165.640 125 6/13/2024
2024.1165.574 139 6/13/2024
2024.1165.466 128 6/13/2024
2024.1165.417 132 6/13/2024
2024.1165.392 132 6/13/2024
2024.1164.341 122 6/12/2024
2024.1155.941 146 6/3/2024
2024.1140.783 149 5/19/2024
2024.1140.692 132 5/19/2024
2024.1140.673 138 5/19/2024
2024.1129.506 140 5/8/2024
2024.1128.831 152 5/7/2024
2024.1124.465 118 5/3/2024
2024.1123.1162 125 5/2/2024
2024.1123.1117 110 5/2/2024
2024.1123.1050 99 5/2/2024
2024.1122.352 137 5/1/2024
2024.1122.233 138 5/1/2024
2024.1115.1101 139 4/24/2024
2024.1115.1048 124 4/24/2024
2024.1115.932 127 4/24/2024
2024.1115.858 137 4/24/2024
2024.1115.665 137 4/24/2024
2024.1115.648 131 4/24/2024
2024.1115.591 141 4/24/2024
2024.1101.390 137 4/10/2024
2024.1100.741 145 4/9/2024
2024.1099.526 144 4/8/2024
2024.1099.466 140 4/8/2024
2024.1098.573 140 4/7/2024
2024.1095.977 141 4/4/2024
2024.1095.847 136 4/4/2024
2024.1095.604 143 4/4/2024
2024.1095.485 161 4/4/2024
2024.1094.930 135 4/3/2024
2024.1094.910 149 4/3/2024
2024.1094.387 151 4/3/2024
2024.1094.313 137 4/3/2024
2024.1093.520 138 4/2/2024
2024.1092.240 136 4/1/2024
2024.1089.1425 150 3/29/2024
2024.1089.983 143 3/29/2024
2024.1089.942 131 3/29/2024
2024.1089.2 146 3/29/2024
2024.1088.1343 136 3/28/2024
2024.1088.1139 144 3/28/2024
2024.1088.875 112 3/28/2024
2024.1088.700 126 3/28/2024
2024.1088.603 143 3/28/2024
2024.1088.590 147 3/28/2024
2024.1088.575 139 3/28/2024
2024.1088.561 144 3/28/2024
2024.1088.506 147 3/28/2024
2024.1088.18 146 3/28/2024
2024.1087.1181 157 3/27/2024
2024.1087.1173 144 3/27/2024
2024.1087.1143 148 3/27/2024
2024.1087.1108 129 3/27/2024
2024.1087.950 146 3/27/2024
2024.1087.939 134 3/27/2024
2024.1087.252 146 3/27/2024
2024.1070.736 143 3/10/2024
2024.1049.1437 152 2/19/2024
2024.1036.571 151 2/5/2024
2024.1036.508 136 2/5/2024
2024.1032.1204 140 2/1/2024
2024.1032.1133 138 2/1/2024
2024.1032.1122 160 2/1/2024
2024.1032.1071 130 2/1/2024
2024.1032.940 132 2/1/2024
2024.1031.912 129 1/31/2024
2024.1031.893 132 1/31/2024
2024.1031.851 120 1/31/2024
2024.1031.829 130 1/31/2024
2024.1031.386 128 1/31/2024
2024.1031.318 147 1/31/2024
2024.1017.460 155 1/17/2024
2024.1017.420 132 1/17/2024
2024.1017.163 133 1/17/2024
2024.1016.414 668 1/16/2024
2024.1012.167 153 1/12/2024
2024.1011.406 147 1/11/2024
2024.1010.315 161 1/10/2024
2023.1358.326 188 12/24/2023
2023.1351.473 153 12/17/2023
2023.1351.445 152 12/17/2023
2023.1351.432 162 12/17/2023
2023.1350.478 155 12/16/2023
2023.1344.600 169 12/10/2023
2023.1344.529 212 12/10/2023
2023.1339.582 171 12/5/2023
2023.1338.1072 173 12/4/2023
2023.1336.844 172 12/2/2023
2023.1335.378 166 12/1/2023
2023.1335.236 161 12/1/2023
2023.1335.203 157 12/1/2023