实例介绍
FluentValidation是一个专为.NET应用程序设计的验证库,它允许开发者使用流畅的接口和lambda表达式来构建强类型的验证规则。这种方式不仅使得代码更加清晰,也便于维护和测试。
如果您在商业项目中使用FluentValidation,请考虑对该项目进行财务赞助。FluentValidation由Jeremy Skinner在其空闲时间免费开发和支持,财务赞助有助于保持项目的持续运行。
快速开始:FluentValidation可以通过Nuget包管理器或dotnet CLI进行安装。
dotnet add package FluentValidation
查看我们的文档了解如何使用该包。
示例:
定义一个CustomerValidator类,继承自AbstractValidator
创建一个Customer实例并使用CustomerValidator进行验证,可以获取验证结果,包括是否通过验证以及具体的验证失败信息。
FluentValidation遵循由Contributor Covenant定义的行为准则,以明确我们社区中的预期行为。更多信息请参见.NET Foundation行为准则。FluentValidation由.NET Foundation, Jeremy Skinner及其他贡献者版权所有,并在Apache2许可证下授权。
该项目得到了包括JetBrains在内的多家组织的赞助,这些支持帮助保持了项目的持续运行。
【实例截图】
【核心代码】
文件清单
└── FluentValidation-a796e460fff7339bc686e146d70cc94811f15be5
├── Build.cmd
├── Changelog.txt
├── FluentValidation.sln
├── FluentValidation.sln.DotSettings
├── License.txt
├── after.FluentValidation.sln.targets
├── build.ps1
├── build.sh
├── docs
│ ├── Makefile
│ ├── advanced.md
│ ├── aspnet.md
│ ├── async.md
│ ├── blazor.md
│ ├── built-in-validators.md
│ ├── cascade.md
│ ├── collections.md
│ ├── conditions.md
│ ├── conf.py
│ ├── configuring.md
│ ├── custom-state.md
│ ├── custom-validators.md
│ ├── dependentrules.md
│ ├── di.md
│ ├── error-codes.md
│ ├── including-rules.md
│ ├── index.rst
│ ├── inheritance.md
│ ├── installation.md
│ ├── localization.md
│ ├── make.bat
│ ├── mvc5.md
│ ├── requirements.txt
│ ├── requirements_rtd.txt
│ ├── rulesets.md
│ ├── severity.md
│ ├── specific-properties.md
│ ├── start.md
│ ├── testing.md
│ ├── transform.md
│ ├── upgrading-to-10.md
│ ├── upgrading-to-11.md
│ ├── upgrading-to-8.md
│ ├── upgrading-to-9.md
│ └── webapi.md
├── fv-small.png
├── global.json
├── logo
│ ├── fluent-validation-icon.png
│ ├── fluent-validation-logo.png
│ ├── fluent-validation-logo.svg
│ └── fluent-validation-logo.vsdx
├── nuget.config
└── src
├── CommonAssemblyInfo.cs
├── Directory.Build.props
├── FluentValidation
│ ├── AbstractValidator.cs
│ ├── AssemblyInfo.FluentValidation.cs
│ ├── AssemblyScanner.cs
│ ├── AsyncValidatorInvokedSynchronouslyException.cs
│ ├── CompatibilitySuppressions.xml
│ ├── DefaultValidatorExtensions.cs
│ ├── DefaultValidatorExtensions_Validate.cs
│ ├── DefaultValidatorOptions.cs
│ ├── Enums.cs
│ ├── FluentValidation.csproj
│ ├── FluentValidation.csproj.DotSettings
│ ├── ICollectionRule.cs
│ ├── IValidationContext.cs
│ ├── IValidationRule.cs
│ ├── IValidationRuleInternal.cs
│ ├── IValidator.cs
│ ├── IValidatorDescriptor.cs
│ ├── IValidatorFactory.cs
│ ├── InlineValidator.cs
│ ├── Internal
│ │ ├── AccessorCache.cs
│ │ ├── ChildRulesContainer.cs
│ │ ├── CollectionPropertyRule.cs
│ │ ├── CompositeValidatorSelector.cs
│ │ ├── ConditionBuilder.cs
│ │ ├── DefaultValidatorSelector.cs
│ │ ├── Extensions.cs
│ │ ├── ExtensionsInternal.cs
│ │ ├── IRuleComponent.cs
│ │ ├── IValidatorSelector.cs
│ │ ├── IncludeRule.cs
│ │ ├── MemberNameValidatorSelector.cs
│ │ ├── MessageBuilderContext.cs
│ │ ├── MessageFormatter.cs
│ │ ├── PropertyChain.cs
│ │ ├── PropertyRule.cs
│ │ ├── RuleBase.cs
│ │ ├── RuleBuilder.cs
│ │ ├── RuleComponent.cs
│ │ ├── RuleComponentForNullableStruct.cs
│ │ ├── RulesetValidatorSelector.cs
│ │ ├── TrackingCollection.cs
│ │ └── ValidationStrategy.cs
│ ├── README.md
│ ├── Resources
│ │ ├── ILanguageManager.cs
│ │ ├── LanguageManager.cs
│ │ └── Languages
│ │ ├── AlbanianLanguage.cs
│ │ ├── ArabicLanguage.cs
│ │ ├── AzerbaijaneseLanguage.cs
│ │ ├── BengaliLanguage.cs
│ │ ├── BosnianLanguage.cs
│ │ ├── BulgarianLanguage.cs
│ │ ├── CatalanLanguage.cs
│ │ ├── ChineseSimplifiedLanguage.cs
│ │ ├── ChineseTraditionalLanguage.cs
│ │ ├── CroatianLanguage.cs
│ │ ├── CzechLanguage.cs
│ │ ├── DanishLanguage.cs
│ │ ├── DutchLanguage.cs
│ │ ├── EnglishLanguage.cs
│ │ ├── EstonianLanguage.cs
│ │ ├── FinnishLanguage.cs
│ │ ├── FrenchLanguage.cs
│ │ ├── GeorgianLanguage.cs
│ │ ├── GermanLanguage.cs
│ │ ├── GreekLanguage.cs
│ │ ├── HebrewLanguage.cs
│ │ ├── HindiLanguage.cs
│ │ ├── HungarianLanguage.cs
│ │ ├── IcelandicLanguage.cs
│ │ ├── IndonesianLanguage.cs
│ │ ├── ItalianLanguage.cs
│ │ ├── JapaneseLanguage.cs
│ │ ├── KazakhLanguage.cs
│ │ ├── KhmerLanguage.cs
│ │ ├── KoreanLanguage.cs
│ │ ├── MacedonianLanguage.cs
│ │ ├── NorwegianBokmalLanguage.cs
│ │ ├── PersianLanguage.cs
│ │ ├── PolishLanguage.cs
│ │ ├── PortugueseBrazilLanguage.cs
│ │ ├── PortugueseLanguage.cs
│ │ ├── RomanianLanguage.cs
│ │ ├── RussianLanguage.cs
│ │ ├── SerbianLanguage.cs
│ │ ├── SlovakLanguage.cs
│ │ ├── SlovenianLanguage.cs
│ │ ├── SpanishLanguage.cs
│ │ ├── SwedishLanguage.cs
│ │ ├── TajikLanguage.cs
│ │ ├── ThaiLanguage.cs
│ │ ├── TurkishLanguage.cs
│ │ ├── UkrainianLanguage.cs
│ │ ├── UzbekCyrillicLanguage.cs
│ │ ├── UzbekLatinLanguage.cs
│ │ ├── VietnameseLanguage.cs
│ │ └── WelshLanguage.cs
│ ├── Results
│ │ ├── ValidationFailure.cs
│ │ └── ValidationResult.cs
│ ├── Syntax.cs
│ ├── TestHelper
│ │ ├── ITestValidationContinuation.cs
│ │ ├── TestValidationResult.cs
│ │ ├── ValidationTestException.cs
│ │ └── ValidatorTestExtensions.cs
│ ├── ValidationException.cs
│ ├── ValidatorDescriptor.cs
│ ├── ValidatorFactoryBase.cs
│ ├── ValidatorOptions.cs
│ └── Validators
│ ├── AbstractComparisonValidator.cs
│ ├── AsyncPredicateValidator.cs
│ ├── AsyncPropertyValidator.cs
│ ├── ChildValidatorAdaptor.cs
│ ├── ComparableComparer.cs
│ ├── CreditCardValidator.cs
│ ├── EmailValidator.cs
│ ├── EmptyValidator.cs
│ ├── EnumValidator.cs
│ ├── EqualValidator.cs
│ ├── ExclusiveBetweenValidator.cs
│ ├── GreaterThanOrEqualValidator.cs
│ ├── GreaterThanValidator.cs
│ ├── IPropertyValidator.cs
│ ├── InclusiveBetweenValidator.cs
│ ├── LengthValidator.cs
│ ├── LessThanOrEqualValidator.cs
│ ├── LessThanValidator.cs
│ ├── NoopPropertyValidator.cs
│ ├── NotEmptyValidator.cs
│ ├── NotEqualValidator.cs
│ ├── NotNullValidator.cs
│ ├── NullValidator.cs
│ ├── PolymorphicValidator.cs
│ ├── PredicateValidator.cs
│ ├── PropertyValidator.cs
│ ├── RangeValidator.cs
│ ├── RegularExpressionValidator.cs
│ ├── ScalePrecisionValidator.cs
│ └── StringEnumValidator.cs
├── FluentValidation-Release.snk
├── FluentValidation.DependencyInjectionExtensions
│ ├── DependencyInjectionExtensions.cs
│ ├── FluentValidation.DependencyInjectionExtensions.csproj
│ ├── README.md
│ ├── ServiceCollectionExtensions.cs
│ └── ServiceProviderValidatorFactory.cs
├── FluentValidation.Tests
│ ├── AbstractValidatorTester.cs
│ ├── AccessorCacheTests.cs
│ ├── AssemblyScannerTester.cs
│ ├── CascadeModePropertiesTesterLegacy.cs
│ ├── CascadingFailuresTester.cs
│ ├── CascadingFailuresTesterLegacy.cs
│ ├── ChainedValidationTester.cs
│ ├── ChainingValidatorsTester.cs
│ ├── ChildRulesTests.cs
│ ├── CollectionValidatorWithParentTests.cs
│ ├── ComplexValidationTester.cs
│ ├── ConditionTests.cs
│ ├── CreditCardValidatorTests.cs
│ ├── CultureScope.cs
│ ├── CustomMessageFormatTester.cs
│ ├── CustomValidatorTester.cs
│ ├── DefaultValidatorExtensionTester.cs
│ ├── DependencyInjectionExtensions
│ │ └── ServiceCollectionExtensionsTests.cs
│ ├── EmailValidatorTests.cs
│ ├── EmptyTester.cs
│ ├── EnumValidatorTests.cs
│ ├── EqualValidatorTests.cs
│ ├── ExactLengthValidatorTester.cs
│ ├── ExclusiveBetweenValidatorTests.cs
│ ├── ExtensionTester.cs
│ ├── FluentValidation.Tests.csproj
│ ├── ForEachRuleTests.cs
│ ├── GreaterThanOrEqualToValidatorTester.cs
│ ├── GreaterThanValidatorTester.cs
│ ├── InclusiveBetweenValidatorTests.cs
│ ├── InheritanceValidatorTest.cs
│ ├── InlineValidatorTester.cs
│ ├── JsonSerializationTests.cs
│ ├── LanguageManagerTests.cs
│ ├── LengthValidatorTests.cs
│ ├── LessThanOrEqualToValidatorTester.cs
│ ├── LessThanValidatorTester.cs
│ ├── LocalisedMessagesTester.cs
│ ├── LocalisedNameTester.cs
│ ├── MessageFormatterTests.cs
│ ├── ModelLevelValidatorTests.cs
│ ├── NameResolutionPluggabilityTester.cs
│ ├── NotEmptyTester.cs
│ ├── NotEqualValidatorTests.cs
│ ├── NotNullTester.cs
│ ├── NullTester.cs
│ ├── OnFailureHookTester.cs
│ ├── Person.cs
│ ├── PredicateValidatorTester.cs
│ ├── PropertyChainTests.cs
│ ├── RegularExpressionValidatorTests.cs
│ ├── RuleBuilderTests.cs
│ ├── RuleDependencyTests.cs
│ ├── RulesetTests.cs
│ ├── ScalePrecisionValidatorTests.cs
│ ├── SharedConditionTests.cs
│ ├── StreetNumberComparer.cs
│ ├── StringEnumValidatorTests.cs
│ ├── TestExtensions.cs
│ ├── TestMessages.Designer.cs
│ ├── TestMessages.fr.resx
│ ├── TestMessages.resx
│ ├── TestValidator.cs
│ ├── TestValidatorWithPreValidate.cs
│ ├── TrackingCollectionTests.cs
│ ├── TransformTests.cs
│ ├── UserSeverityTester.cs
│ ├── UserStateTester.cs
│ ├── ValidateAndThrowTester.cs
│ ├── ValidationResultTests.cs
│ ├── ValidatorDescriptorTester.cs
│ ├── ValidatorSelectorTests.cs
│ ├── ValidatorTesterTester.cs
│ ├── packages.config
│ └── xunit.runner.json
└── FluentValidation.Tests.Benchmarks
├── DataSet.cs
├── EngineOnlyBenchmark.cs
├── FluentValidation.Tests.Benchmarks.csproj
├── InitializationBenchmark.cs
├── Models.cs
├── Program.cs
└── ValidationBenchmark.cs
15 directories, 278 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论