第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C# 中的 FluentValidation - 使用另一個對象中的屬性進行驗證

C# 中的 FluentValidation - 使用另一個對象中的屬性進行驗證

C#
千巷貓影 2023-07-09 17:11:20
我在 .NET Core 2.2 API 中有一個類,我正在對其應用 Fluent Validation。該類具有整數(shù)屬性public int? PurchasePrice {get;set;}。該屬性的父級的父級有一個枚舉,我想要做的是當該枚舉的值為 4 時,使該字段成為PurchasePrice必填字段。我已經(jīng)開始編寫這樣的自定義規(guī)則:-RuleFor(pd => pd.PurchasePrice).Custom((a, context) => {     var parent = context.ParentContext.InstanceToValidate as ParentObject;         var parentOfParent = context.ParentContext.ParentContext.InstanceToValidate as GrandParentObject; });然而,第二個 ParentContext 根本不存在于 Intellisense 中,并且還會拋出編譯錯誤,因為它無法被識別。在編寫驗證規(guī)則時,我遍歷對象結(jié)構(gòu)的方式是否錯誤?提前致謝!注意:檢索行var parent按預期工作。
查看完整描述

1 回答

?
慕哥6287543

TA貢獻1831條經(jīng)驗 獲得超10個贊

也許何時可以在這里解決您當前的需求。但如果您需要編寫更復雜的驗證,那么您可以使用Must。Must允許您訪問正在驗證的模型,因此您可以在驗證函數(shù)中訪問模型的任何部分。這也是編寫自定義驗證的一種方法。


考慮到 AdbstractValidator 的類型是父類型(又名模型),其中所述枚舉屬性是您可以使用Must ,如下所示:


RuleFor(pd => pd.PurchasePrice)

    .Must((model, price) => 

    { 

         return model.enum == enum.value && price != null; 

    })

    .WithMessage("Price is required when enum is of value");

必須有幾個重載,一個重載需要將屬性值作為第一個參數(shù)并返回布爾值的函數(shù)。另一個接受兩個參數(shù),上下文中的模型,正在驗證的屬性值并返回一個布爾值。


查看完整回答
反對 回復 2023-07-09
  • 1 回答
  • 0 關注
  • 235 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號