WCF服務驗證方式介紹
WCF開發工具功能強大,可以幫助我們實現許多功能需求。在這里我們會為大家介紹一下WCF服務驗證的相關內容,主要包括對其參數以及消息等的驗證。希望初學者們能從中獲得一些幫助。
如果你的服務操作接受一些基本類型的參數,譬如:
- [ServiceContract]
- public interface IOrdersService
- {
- [OperationContract]
- int CreateOrder(string currency, double amount);
- }
并且你想要通過WCF服務驗證它們,你可以在服務契約中使用基于參數的驗證。
- [ServiceContract]
- public interface IOrdersService
- {
- [OperationContract]
- int CreateOrder(
- [NotNullValidator] string currency,
- [RangeValidator(1.0, RangeBoundaryType.Inclusive, 2.0,
- RangeBoundaryType.Inclusive)] double amount);
- }
請注意在服務操作的每一個參數前面的驗證屬性的用法。這些屬性指定了參數驗證的必須條件,只有表注了這些屬性,Validation Application Block 才能在運行時給予驗證。
驗證傳遞給服務操作的消息契約或者數據契約.如果你的服務操作接受一個數據契約參數或者消息契約參數,你事實上可以利用基于契約的驗證。譬如,如下的定單數據的數據契約有驗證邏輯那確保Currency屬性的值是預先定義的值。
- [DataContract]
- public class OrderData
- {
- [DataMember]
- public double Amount
- {
- get { return amount; }
- set { amount = value; }
- }
- [DataMember]
- [DomainValidator("USD","EUR","JPY")]
- public string Currency
- {
- get { return currency; }
- set { currency = value; }
- }
- }
現在,當你在一個服務契約中傳遞它的時候,你沒有必要指定基于參數的驗證,因為在傳遞數據契約的時候它從數據契約中進行驗證。
- [OperationContract]
- OrderInfo CreateOrder(OrderData orderData);
為了驗證一個業務對象,其實用屬性并不是唯一的方法。如果你需要更多的彈性,你還可以通過配置文件完成同樣的功能。以上就是對WCF服務驗證的相關介紹。
【編輯推薦】