예제 #1
0
 static void ValidatingParametersInAWCFService()
 {
     bool success;
     // Create a client to access the ProductService WCF service.
     ProductService.IProductService svc = new ProductService.ProductServiceClient();
     Console.WriteLine("Created a client to access the ProductService WCF service.");
     Console.WriteLine();
     // Call the method, which returns success or failure, to add a valid product.
     IProduct validProduct = new Product();
     PopulateValidProduct(validProduct);
     try
     {
         Console.WriteLine("Adding a valid product using the ProductService... ");
         success = svc.AddNewProduct(validProduct.ID, validProduct.Name, validProduct.Description,
                                       validProduct.ProductType, validProduct.InStock,
                                                                 validProduct.OnOrder, validProduct.DateDue);
         Console.WriteLine("Successful: {0}", success);
     }
     catch (FaultException<ValidationFault> ex)
     {
         // Validation of the Product instance failed within the service interface.
         Console.WriteLine("Validation within the ProductService failed.");
         // Convert the validation details in the exception to individual
         // ValidationResult instances and add them to the collection.
         ValidationResults results = ConvertToValidationResults(ex.Detail.Details, validProduct);
         // Display information about the validation errors
         ShowValidationResults(results);
     }
     catch (Exception ex)
     {
         Console.WriteLine("Error while calling service method: {0}", ex.Message);
     }
     Console.WriteLine();
     // Now call the same method to add an invalid product.
     IProduct invalidProduct = new Product();
     PopulateInvalidProduct(invalidProduct);
     try
     {
         Console.WriteLine("Adding an invalid product using the ProductService... ");
         success = svc.AddNewProduct(invalidProduct.ID, invalidProduct.Name, invalidProduct.Description,
                                       invalidProduct.ProductType, invalidProduct.InStock,
                                                                 invalidProduct.OnOrder, invalidProduct.DateDue);
         Console.WriteLine("Added an invalid product using the ProductService. Successful: {0}", success);
     }
     catch (FaultException<ValidationFault> ex)
     {
         // Validation of the Product instance failed within the service interface.
         Console.WriteLine("Validation within the ProductService failed.");
         // Convert the validation details in the exception to individual
         // ValidationResult instances and add them to the collection.
         ValidationResults results = ConvertToValidationResults(ex.Detail.Details, invalidProduct);
         // Display information about the validation errors
         ShowValidationResults(results);
     }
     catch (Exception ex)
     {
         Console.WriteLine("Error while calling service method: {0}", ex.Message);
     }
 }