// // Policy Alternative Enumeration code // public static IEnumerable <PolicyConversionContext> GetPolicyConversionContextEnumerator(ServiceEndpoint endpoint, PolicyAlternatives policyAlternatives, MetadataImporterQuotas quotas) { IEnumerable <Dictionary <MessageDescription, IEnumerable <XmlElement> > > messageAssertionEnumerator; IEnumerable <Dictionary <FaultDescription, IEnumerable <XmlElement> > > faultAssertionEnumerator; IEnumerable <Dictionary <OperationDescription, IEnumerable <XmlElement> > > operationAssertionEnumerator; faultAssertionEnumerator = PolicyIterationHelper.GetCartesianProduct <FaultDescription, IEnumerable <XmlElement> >(policyAlternatives.FaultBindingAlternatives); messageAssertionEnumerator = PolicyIterationHelper.GetCartesianProduct <MessageDescription, IEnumerable <XmlElement> >(policyAlternatives.MessageBindingAlternatives); operationAssertionEnumerator = PolicyIterationHelper.GetCartesianProduct <OperationDescription, IEnumerable <XmlElement> >(policyAlternatives.OperationBindingAlternatives); foreach (Dictionary <FaultDescription, IEnumerable <XmlElement> > faultAssertionsSelection in faultAssertionEnumerator) { foreach (Dictionary <MessageDescription, IEnumerable <XmlElement> > messageAssertionsSelection in messageAssertionEnumerator) { foreach (Dictionary <OperationDescription, IEnumerable <XmlElement> > operationAssertionsSelection in operationAssertionEnumerator) { foreach (IEnumerable <XmlElement> endpointAssertionsSelection in policyAlternatives.EndpointAlternatives) { ImportedPolicyConversionContext conversionContext; try { conversionContext = new ImportedPolicyConversionContext(endpoint, endpointAssertionsSelection, operationAssertionsSelection, messageAssertionsSelection, faultAssertionsSelection, quotas); } catch (MaxItemsEnumeratorExceededMaxItemsException) { yield break; } yield return(conversionContext); } } } } }
internal static IEnumerable <PolicyConversionContext> GetPolicyConversionContextEnumerator(ServiceEndpoint endpoint, PolicyAlternatives policyAlternatives, MetadataImporterQuotas quotas) { return(ImportedPolicyConversionContext.GetPolicyConversionContextEnumerator(endpoint, policyAlternatives, quotas)); }