Sels.ObjectValidationFramework 6.0.0-beta-000343

This is a prerelease version of Sels.ObjectValidationFramework.
There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package Sels.ObjectValidationFramework --version 6.0.0-beta-000343
                    
NuGet\Install-Package Sels.ObjectValidationFramework -Version 6.0.0-beta-000343
                    
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="Sels.ObjectValidationFramework" Version="6.0.0-beta-000343" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Sels.ObjectValidationFramework" Version="6.0.0-beta-000343" />
                    
Directory.Packages.props
<PackageReference Include="Sels.ObjectValidationFramework" />
                    
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 Sels.ObjectValidationFramework --version 6.0.0-beta-000343
                    
#r "nuget: Sels.ObjectValidationFramework, 6.0.0-beta-000343"
                    
#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 Sels.ObjectValidationFramework@6.0.0-beta-000343
                    
#: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=Sels.ObjectValidationFramework&version=6.0.0-beta-000343&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Sels.ObjectValidationFramework&version=6.0.0-beta-000343&prerelease
                    
Install as a Cake Tool

Framework for creating typed validation profiles using a fluent syntax.
Features:
- Typed validation profiles like AutoMapper
- Fluent syntax for creating validation rules
- Profiles can return a custom error message type
- Automatically traverses the hierarchy of an object to validate everything when validation exist for the type (Custom typed properties and collections are detected)
- Support for typed context objects that can be passed onto the validation profiles to provide the rules with more information (For example the lifecycle of the object, the old state in case of updates, ...)
- Custom info objects for validation delegates that contain extra information about the value currently being validated (Like it's source, if the value is part of a collection, the parent hierarchy, ...)
- Async support
- Extension methods for common validation rules
- Default error messages for extension methods when using String as error message type
- Dependency injection through IValidator interface
- Extension methods for validating IOptions instances

Start by inheriting from Sels.ObjectValidationFramework.Profile.ValidationProfile<TError>

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (8)

Showing the top 5 NuGet packages that depend on Sels.ObjectValidationFramework:

Package Downloads
Sels.Core.Mediator

Library containing code for sending messages to other subscribing objects within the same process. Used by projects maintained here: https://github.com/Jenssels1998

Sels.SQL.QueryBuilder

Framework for creating sql queries using fluent builders. Uses a (somewhat) easy to extend expression system that gets compiled into SQL using compilers. Can be used for simple queries or more advanced queries (Joins, conditions (WHERE), sub queries, order by, group by, functions (MIN, AVG, ...), Union, case when then else, ...) Supports the following sql statements: - Insert - Update - Delete - Select - Common table expressions (CTE) - If, else if, else - Declare variable - Set variable Use IServiceCollection.AddSqlQueryProvider() or IServiceCollection.AddCachedSqlQueryProvider to inject ISqlQueryProvider or ICachedSqlQueryProvider to start building sql queries. Official compilers: - Sels.SQL.QueryBuilder.MySQL

Sels.SQL.QueryBuilder.MySQL

MySQL compiler for Sels.SQL.QueryBuilder. Supports MySQL and MariaDB. Custom expressions: - SELECT FOR UPDATE - INSERT ON DUPLICATE KEY - SELECT LIMIT - RECURSIVE Cte - MariaDB RETURNING - NOW, UTC_TIMESTAMP, DATE_ADD, CONCACT functions Start creating queries using one of the following static helper methods: - Sels.SQL.QueryBuilder.MySQL.MySql.Insert(); - Sels.SQL.QueryBuilder.MySQL.MySql.Update(); - Sels.SQL.QueryBuilder.MySQL.MySql.Delete(); - Sels.SQL.QueryBuilder.MySQL.MySql.Select(); - Sels.SQL.QueryBuilder.MySQL.MySql.With(); - Sels.SQL.QueryBuilder.MySQL.MySql.If(); - Sels.SQL.QueryBuilder.MySQL.MySql.Set(); Use IServiceCollection.AddMySqlQueryProvider() or IServiceCollection.AddCachedMySqlQueryProvider to inject ISqlQueryProvider or ICachedSqlQueryProvider to start building MySQL queries.

Sels.DistributedLocking.Memory

Locking provider using an in-memory store for inner process distributed locks. Provider can be added to the service container using the IServiceCollection.AddMemoryLockingProvider() extension method. Inject Sels.DistributedLocking.Provider.ILockingProvider to start placing distributed locks.

Sels.Core.Async

Library with components/services that make use of the TPL / Thread Pool. Used by projects maintained here: https://github.com/Jenssels1998

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
6.0.0-beta-000345 147 11/25/2024
6.0.0-beta-000343 152 11/6/2024
6.0.0-beta-000337 196 8/18/2024
6.0.0-beta-000331 174 6/25/2024
6.0.0-beta-000330 182 6/25/2024
6.0.0-beta-000325 218 4/26/2024
6.0.0-beta-000322 214 4/3/2024
6.0.0-beta-000321 196 4/1/2024
6.0.0-beta-000319 206 1/29/2024
6.0.0-beta-000318 195 1/28/2024
6.0.0-beta-000314 213 1/26/2024
6.0.0-beta-000313 215 1/20/2024
6.0.0-beta-000312 242 1/7/2024
6.0.0-beta-000311 247 1/3/2024
6.0.0-beta-000310 216 1/2/2024
6.0.0-beta-000309 241 12/28/2023
6.0.0-beta-000308 207 12/22/2023
6.0.0-beta-000307 223 12/8/2023
6.0.0-beta-000306 205 12/8/2023
6.0.0-beta-000301 229 10/22/2023
6.0.0-beta-000300 193 10/15/2023
6.0.0-beta-000299 187 10/15/2023
6.0.0-beta-000298 187 10/12/2023
6.0.0-beta-000297 208 9/18/2023
6.0.0-beta-000296 222 9/7/2023
6.0.0-beta-000295 208 9/6/2023
6.0.0-beta-000294 210 9/6/2023
6.0.0-beta-000293 239 9/6/2023
6.0.0-beta-000292 176 9/4/2023
6.0.0-beta-000291 149 9/4/2023
6.0.0-beta-000290 182 8/17/2023
6.0.0-beta-000287 177 8/15/2023
6.0.0-beta-000286 157 7/16/2023
6.0.0-beta-000281 168 5/14/2023
6.0.0-beta-000280 185 5/13/2023
6.0.0-beta-000279 173 5/13/2023
6.0.0-beta-000278 161 5/13/2023
6.0.0-beta-000277 169 5/13/2023
6.0.0-beta-000276 177 5/7/2023
6.0.0-beta-000275 183 4/28/2023
6.0.0-beta-000274 156 4/16/2023
6.0.0-beta-000273 161 4/16/2023
6.0.0-beta-000271 179 3/31/2023
6.0.0-beta-000270 179 3/25/2023
5.0.2 2,418 10/1/2022
5.0.2-beta-000265 230 9/24/2022
5.0.2-beta-000264 234 9/24/2022
5.0.2-beta-000263 230 9/23/2022
5.0.2-beta-000262 226 9/23/2022
5.0.2-beta-000261 213 9/23/2022
5.0.2-beta-000260 241 9/23/2022
5.0.2-beta-000259 233 9/23/2022
5.0.2-beta-000258 250 9/18/2022
5.0.1-beta-20220918-155627 272 9/18/2022
5.0.1-beta-20220918-155616 258 9/18/2022
5.0.1-beta-20220918-154726 247 9/18/2022
5.0.1-beta-000257 255 9/18/2022
5.0.0-beta-99 223 9/2/2022
5.0.0-beta-98 218 8/19/2022
5.0.0-beta-97 208 8/18/2022
5.0.0-beta-96 235 8/10/2022
5.0.0-beta-95 217 7/16/2022
5.0.0-beta-94 224 7/11/2022
5.0.0-beta-93 208 6/16/2022
5.0.0-beta-253 268 9/18/2022
5.0.0-beta-252 212 9/11/2022
5.0.0-beta-233 192 9/2/2022
5.0.0-beta-225 195 9/2/2022
5.0.0-beta-224 210 9/2/2022
5.0.0-beta-220 213 9/2/2022
5.0.0-beta-219 220 9/2/2022
5.0.0-beta-216 211 9/2/2022
5.0.0-beta-212 238 9/2/2022
5.0.0-beta-211 194 9/2/2022
5.0.0-beta-206 212 9/2/2022
5.0.0-beta-205 187 9/2/2022
5.0.0-beta-20220918-150347 260 9/18/2022
5.0.0-beta-20220918-150333 260 9/18/2022
5.0.0-beta-20220918-145408 279 9/18/2022
5.0.0-beta-196 201 9/2/2022
5.0.0-beta-194 210 9/2/2022
5.0.0-beta-193 212 9/2/2022
5.0.0-beta-192 206 9/2/2022
5.0.0-beta-190 196 9/2/2022
5.0.0-beta-188 213 9/2/2022
5.0.0-beta-179 230 9/2/2022
5.0.0-beta-178 194 9/2/2022
5.0.0-beta-167 199 9/2/2022
5.0.0-beta-165 200 9/2/2022
5.0.0-beta-161 207 9/2/2022
5.0.0-beta-160 214 9/2/2022
5.0.0-beta-157 200 9/2/2022
5.0.0-beta-155 217 9/2/2022
5.0.0-beta-146 191 9/2/2022
5.0.0-beta-145 188 9/2/2022
5.0.0-beta-140 190 9/2/2022
5.0.0-beta-138 204 9/2/2022
5.0.0-beta-132 223 9/2/2022
5.0.0-beta-130 197 9/2/2022
5.0.0-beta-126 219 9/2/2022
5.0.0-beta-125 219 9/2/2022
5.0.0-beta-120 220 9/2/2022
5.0.0-beta-118 189 9/2/2022
5.0.0-beta-115 210 9/2/2022
5.0.0-beta-114 210 9/2/2022
5.0.0-beta-113 211 9/2/2022
5.0.0-beta-112 192 9/2/2022
5.0.0-beta-109 196 9/2/2022
5.0.0-beta-107 207 9/2/2022
4.0.0 583 2/12/2022
4.0.0-beta-92 231 6/4/2022
4.0.0-beta-91 224 5/29/2022
4.0.0-beta-90 244 5/29/2022
4.0.0-beta-89 214 5/28/2022
4.0.0-beta-86 267 4/26/2022
4.0.0-beta-85 245 4/23/2022
4.0.0-beta-84 226 3/16/2022
4.0.0-beta-78 243 2/18/2022
4.0.0-beta-77 237 2/18/2022
4.0.0-beta-76 225 2/18/2022
4.0.0-beta-75 230 2/18/2022
4.0.0-beta-74 226 2/18/2022
4.0.0-beta-73 252 2/12/2022
3.0.0 448 12/5/2021
3.0.0-beta-72 474 12/11/2021
3.0.0-beta-71 267 12/9/2021
3.0.0-beta-70 478 12/9/2021
3.0.0-beta-69 438 12/9/2021
3.0.0-beta-67 466 12/9/2021
3.0.0-beta-66 449 12/9/2021
3.0.0-beta-65 431 12/9/2021
3.0.0-beta-64 430 12/9/2021
3.0.0-beta-63 417 12/9/2021
3.0.0-beta-62 408 12/9/2021
3.0.0-beta-61 413 12/9/2021
3.0.0-beta-59 269 12/8/2021
3.0.0-beta-58 283 12/8/2021
3.0.0-beta-53 277 12/6/2021
3.0.0-beta-52 264 12/6/2021
3.0.0-beta-42 264 12/6/2021
3.0.0-beta-41 274 12/6/2021
3.0.0-beta-40 270 12/6/2021
3.0.0-beta-39 282 12/5/2021
2.0.0 1,338 11/20/2021
2.0.0-beta-38 1,167 11/20/2021
2.0.0-beta-37 1,173 11/20/2021
1.0.0 557 10/23/2021
1.0.0-beta-1 424 10/23/2021