4
有什麼辦法可以強制限制以數據合同的形式傳遞的值作爲給定WCF服務的參數嗎?對DataContracts執行Restritions
例如,請考慮此Vehicle
類的做作,當然非編譯例如:
[DataContract]
public class Vehicle
{
[DataMember]
[Restriction(MinValue = 1, MaxValue = 30)] // Certainly not allowed... or is it?
public int NumberOfWheels { get; set; }
}
因爲,當然,沒有人希望找到車輛用得比較多,比如說,30輪,我想將NumberOfWheels
的範圍限制在1到30之間的值。在這種情況下,有什麼方法可以使用XSD限制/構面來限制可接受值的範圍?
(請注意,我可以,當然NumberOfWheels
的類型從int
改變,比方說,byte
進一步限制可能值的範圍。然而,這不能解決問題......當然,沒有人預計的車輛有255個車輪)
除了在服務層中顯示域驗證外,您還可以使用dataannotation驗證器嗎?即[範圍(1,30)]。它們位於System.ComponentModel.DataAnnotations庫中。 –
作爲附錄,應該注意的是隻有類型定義會發送給客戶端,所以雖然我們可以在客戶端收到數據後進行驗證,但我們不能強制客戶端的行爲。 –