亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

.NET業務實體類驗證組件Fluent Validation

2019-11-17 01:54:00
字體:
來源:轉載
供稿:網友

.NET業務實體類驗證組件Fluent Validation

認識Fluent Vaidation.

  看到NopCommerce項目中用到這個組建是如此的簡單,將數據驗證從業務實體類中分離出來,真是一個天才的想法,后來才知道這個東西是一個開源的輕量級驗證組建。  Fluent Validation 翻譯為:流暢驗證  開源Codeplex其主頁簡介:該組件是一個輕量級的.NET類庫,使用流暢的接口定義和lambda表達式為構建一個業務類的驗證規則(A small validation library for .NET that uses a fluent interface and lambda exPRession for building validation rules for you business objects.)  這個類庫不僅僅可以使用的asp.net mvc項目中,普通的類庫中也可以使用,當然在asp.net form項目中也支持。怎么使用:    是不是好用,還要看使用時是否真的像其官網建議描述一樣。我比較喜歡其官網上的例子,一眼就能看出用法上的感覺,絕對是如其名,流暢,這個也一種解釋型語言常見的的一種用法,無限的對一個類型支持無限度個屬性擴展。 業務實體類:復制代碼1 public class Person2 {3 public string NameField;4 public int Id { get; set; }5 public string Surname { get; set; }6 public string Forename { get; set; }78 public List<Person> Children { get; set; }9 public string[] NickNames { get; set; }10 11 public DateTime DateOfBirth { get; set; }1213 public int? NullableInt { get; set; }1415 public Person()16 {17 Children = new List<Person>();18 Orders = new List<Order>();19 }20 21 public int CalculateSalary()22 {23 return 20;24 }2526 public Address Address { get; set; }27 public IList<Order> Orders { get; set; }2829 public string Email { get; set; }30 public decimal Discount { get; set; }31 public double Age { get; set; }32 public int AnotherInt { get; set; }3334 public string CreditCard { get; set; }3536 public int? OtherNullableInt { get; set; }37 }3839 public interface IAddress40 {41 string Line1 { get; set; }42 string Line2 { get; set; }43 string Town { get; set; }44 string County { get; set; }45 string Postcode { get; set; }46 Country Country { get; set; }47 }4849 public class Address : IAddress50 {51 public string Line1 { get; set; }52 public string Line2 { get; set; }53 public string Town { get; set; }54 public string County { get; set; }55 public string Postcode { get; set; }56 public Country Country { get; set; }57 public int Id { get; set; }58 }5960 public class Country61 {62 public string Name { get; set; }63 }6465 public interface IOrder66 {67 decimal Amount { get; }68 }6970 public class Order : IOrder71 {72 public string ProductName { get; set; }73 public decimal Amount { get; set; }74 }復制代碼  對Person的指定驗證規則:  復制代碼1 using FluentValidation;23 public class CustomerValidator: AbstractValidator<Customer>4 {5 public CustomerValidator()6 {7 RuleFor(customer => customer.Surname).NotEmpty();8 RuleFor(customer => customer.Forename).NotEmpty().WithMessage("Please specify a first name");9 RuleFor(customer => customer.Discount).NotEqual(0).When(customer => customer.HasDiscount);10 RuleFor(customer => customer.Address).Length(20, 250);11 RuleFor(customer => customer.Postcode).Must(BeAValidPostcode).WithMessage("Please specify a valid postcode");12 }1314 private bool BeAValidPostcode(string postcode)15 {16 // custom postcode validating logic goes here17 }18 }1920 // 手動驗證規則21 Customer customer = new Customer();22 CustomerValidator validator = new CustomerValidator();23 ValidationResult results = validator.Validate(customer);2425 bool validationSucceeded = results.IsValid;26 IList<ValidationFailure> failures = results.Errors;復制代碼Flent validation怎么與asp.net mvc驗證庫整合?  如果在asp.net mvc中現實中這么用,可能會有很多人不會知道他,我們知道Asp.net MVC項目中有自己的驗證機構[企業庫VAB(Validation application Block),基于Attribute聲明式驗證],其使用方法,也被我們都一直很認可,但其也有很多不夠靈活的,但Fluent Validation確實更靈活一點。使用起來多變性,流暢,而且驗證規則是一個單獨的類,是和業務實體對象分類的,我們不需要翔VAB一樣,需要在業務實體類上使用Attribute注冊驗證規則?! 〖热黄洳皇茿SP.NET MVC的默認驗證規則類庫,我們就需要注冊到ASP.NET MVC的驗證規則庫中。 復制代碼1 // 在Global.asax.cs中的Applicaton_Start()函數中注冊為asp.net mvc默認的驗證規則庫。23 // fluent validation4 FluentValidationModelValidatorProvider provider = new FluentValidationModelValidatorProvider(new AttributedValidatorFactory());5 ModelValidatorProviders.Providers.Add(provider);67 DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;復制代碼注意:  1,)作為Fluent Validation驗證規則類須繼承AbstractValidator<T>;  2,)我們也可以仿照NopCommerce的處理方法,對AttributeValidatorFactory類的Validator(Type type)函數重寫,在特殊的業務環境下支持其他驗證規則。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久综合伊人77777蜜臀| 亚洲国产高清高潮精品美女| www.亚洲天堂| 亚洲一区制服诱惑| 日韩在线一区二区三区免费视频| 色偷偷av亚洲男人的天堂| 日韩欧美综合在线视频| 久久久成人av| 日韩一区二区在线视频| 51午夜精品视频| 国产精品视频色| 国产欧美亚洲精品| 亚洲缚视频在线观看| 国产精品日韩一区| 亚洲精品有码在线| 亚洲成人免费在线视频| 国产精品福利在线观看网址| 中文字幕久精品免费视频| 久久久久久一区二区三区| 5566成人精品视频免费| 日韩在线欧美在线国产在线| 久久久噜噜噜久噜久久| 久久精品久久久久电影| 日韩美女视频中文字幕| 欧美性受xxx| 精品国产拍在线观看| 亚洲黄一区二区| 亚洲人成电影网| 久久久天堂国产精品女人| 97人人模人人爽人人喊中文字| 欧美性黄网官网| 国产午夜精品一区二区三区| 亚洲国产私拍精品国模在线观看| 久久亚洲精品一区| 欧美日韩另类在线| 成人伊人精品色xxxx视频| 国产精品美女免费看| 亚洲午夜未删减在线观看| 亚洲精品美女在线观看| 亚洲xxx视频| 国产精品久久久久久久久久ktv| 日韩av一区二区在线观看| zzijzzij亚洲日本成熟少妇| 欧美三级欧美成人高清www| 国产精品成久久久久三级| 亚洲人免费视频| 国产精品久久久亚洲| 国产精品日韩欧美大师| 亚洲一区二区三| 国产一区二区三区毛片| 国产成人短视频| 久热精品视频在线观看一区| 亚洲成人网av| 91精品久久久久久综合乱菊| 久久免费国产视频| 亚洲va欧美va在线观看| 久久精品一本久久99精品| 国产成人精品免费久久久久| 欧美超级免费视 在线| 成人免费直播live| 亚洲国产精品网站| 亚洲精品99久久久久中文字幕| 亚洲深夜福利在线| 久久久久久亚洲精品| 亚洲国模精品私拍| 欧美片一区二区三区| 久久艳片www.17c.com| 日韩欧美精品网址| 欧美日韩色婷婷| 色偷偷av一区二区三区乱| 日产精品99久久久久久| 国产精品久久99久久| 久久夜色精品国产亚洲aⅴ| 国产一区二区黄| 国产精品视频最多的网站| 国产91精品最新在线播放| 黄色一区二区在线| 91精品国产高清久久久久久| 亚洲欧美一区二区激情| 亚洲精品v天堂中文字幕| 亚洲二区在线播放视频| 久久精品国产亚洲| 欧美电影在线免费观看网站| 在线日韩第一页| 欧美色另类天堂2015| 日韩免费看的电影电视剧大全| 青草青草久热精品视频在线观看| 国产成人激情视频| 欧美性猛交xxxx黑人猛交| 日韩中文有码在线视频| 26uuu久久噜噜噜噜| 久久久久国产视频| 91精品啪在线观看麻豆免费| 国产成人久久久| 日韩在线观看免费高清| 亚洲精品综合久久中文字幕| 中文综合在线观看| 久久久久日韩精品久久久男男| 亚洲欧美日韩网| 亚洲成人激情小说| 中文字幕精品视频| 亚洲欧美国产日韩天堂区| 久久精品国产清自在天天线| 亚洲一区亚洲二区亚洲三区| 亚洲福利视频久久| 日韩av成人在线观看| 精品国产一区二区在线| 亚洲欧美激情另类校园| 国产亚洲欧美日韩美女| 国产精品一区专区欧美日韩| 亚洲欧洲第一视频| 国产91精品在线播放| 日韩中文字在线| 亚洲男人av在线| 欧美午夜精品久久久久久浪潮| 欧美大片第1页| 欧美日韩国内自拍| 亚洲开心激情网| www.午夜精品| 精品福利在线视频| 大伊人狠狠躁夜夜躁av一区| 两个人的视频www国产精品| 成人性生交大片免费看视频直播| 欧美大秀在线观看| 国产精品揄拍一区二区| 青青草精品毛片| 国产视频久久久久| 性色av一区二区三区免费| 蜜月aⅴ免费一区二区三区| 福利视频第一区| 成人激情在线播放| 91黄色8090| 亚洲视频一区二区| 亚洲精选中文字幕| 亚洲国产成人91精品| 成人精品一区二区三区| 精品亚洲永久免费精品| 色综合伊人色综合网站| 欧美最猛黑人xxxx黑人猛叫黄| 久久精品国产精品亚洲| 青青草国产精品一区二区| 992tv在线成人免费观看| 欧美午夜精品伦理| 亚洲欧美在线免费| 91产国在线观看动作片喷水| 日韩精品免费在线视频观看| 精品久久久久久久久久ntr影视| 日韩中文字幕在线| 亚洲人成在线观| 亚洲一区二区久久| 亚洲视频网站在线观看| 亚洲第一免费网站| 久久久精品国产一区二区| 91久久久久久久一区二区| 欧美黄色片免费观看| 伊人久久久久久久久久| 色多多国产成人永久免费网站| 亚洲激情视频在线| 久久免费视频网| 午夜精品www| 久久免费少妇高潮久久精品99| 亚洲天堂av在线播放| 国产精品黄页免费高清在线观看| 中文字幕日韩电影|