private static void CheckExtensions(ServiceDescriptionCollection descriptions, BasicProfileViolationCollection violations) { Hashtable hashtable = new Hashtable(); foreach (ServiceDescription description in descriptions) { if ((ServiceDescription.GetConformanceClaims(description.Types.DocumentationElement) == WsiProfiles.BasicProfile1_1) && !CheckExtensions(description.Extensions)) { violations.Add("R2026", System.Web.Services.Res.GetString("Element", new object[] { "wsdl:types", description.TargetNamespace })); } foreach (Service service in description.Services) { foreach (Port port in service.Ports) { if (ServiceDescription.GetConformanceClaims(port.DocumentationElement) == WsiProfiles.BasicProfile1_1) { if (!CheckExtensions(port.Extensions)) { violations.Add("R2026", System.Web.Services.Res.GetString("Port", new object[] { port.Name, service.Name, description.TargetNamespace })); } Binding binding = descriptions.GetBinding(port.Binding); if (hashtable[binding] != null) { CheckExtensions(binding, description, violations); hashtable.Add(binding, binding); } } } } foreach (Binding binding2 in description.Bindings) { SoapBinding binding3 = (SoapBinding)binding2.Extensions.Find(typeof(SoapBinding)); if (((binding3 != null) && !(binding3.GetType() != typeof(SoapBinding))) && ((hashtable[binding2] == null) && (ServiceDescription.GetConformanceClaims(binding2.DocumentationElement) == WsiProfiles.BasicProfile1_1))) { CheckExtensions(binding2, description, violations); hashtable.Add(binding2, binding2); } } } }