DotSimpleValidation 1.0.0
See the version list below for details.
dotnet add package DotSimpleValidation --version 1.0.0
NuGet\Install-Package DotSimpleValidation -Version 1.0.0
<PackageReference Include="DotSimpleValidation" Version="1.0.0" />
<PackageVersion Include="DotSimpleValidation" Version="1.0.0" />
<PackageReference Include="DotSimpleValidation" />
paket add DotSimpleValidation --version 1.0.0
#r "nuget: DotSimpleValidation, 1.0.0"
#:package DotSimpleValidation@1.0.0
#addin nuget:?package=DotSimpleValidation&version=1.0.0
#tool nuget:?package=DotSimpleValidation&version=1.0.0
DotSimpleValidation
You want validation, but you don't want an entire framework? This tiny project may be of help. Meant to be used in constructors it will ensure that your objects don't contain invalid data. Works well with Domain primitives.
If a property fails validation the Validator will throw ValidationException (which extends ArgumentException). If you don't want to put validation in your constructors the project exposes its internal helper class which will Either contain a Left (invalid) or Right (valid) side.
Validation
private class SomeClass
{
public string ValidDataString { get; }
public int ValidNumber { get; }
public string SortaOptional { get; }
public SomeClass(string data, int aNumber, string message)
{
ValidDataString = data.MustBe(Match(new Regex("([a-zA-Z0-9])")));
ValidNumber = aNumber.MustBe(Between<int>(1,10));
SortaOptional = message.MustBe(NotNullOrBlank());
}
}
Either
public void SaveIfValid(string untrustworthy)
{
var result = untrustworthy.EitherMustBe(Match(new Regex("(safe)")));
if (result is Either<string, string>.Right right)
{
Repo.SaveValidData(right.Data);
}
else
{
throw new ArgumentException(((Either<string,string>.Left) result).Error);
}
}
| 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.