private void Write116_OperationBinding(string n, string ns, OperationBinding o, bool isNullable, bool needType)
 {
     if (o == null)
     {
         if (isNullable)
         {
             base.WriteNullTagLiteral(n, ns);
         }
     }
     else
     {
         if (!needType && !(o.GetType() == typeof(OperationBinding)))
         {
             throw base.CreateUnknownTypeException(o);
         }
         base.WriteStartElement(n, ns, o, false, o.Namespaces);
         if (needType)
         {
             base.WriteXsiType("OperationBinding", "http://schemas.xmlsoap.org/wsdl/");
         }
         XmlAttribute[] extensibleAttributes = o.ExtensibleAttributes;
         if (extensibleAttributes != null)
         {
             for (int i = 0; i < extensibleAttributes.Length; i++)
             {
                 XmlAttribute node = extensibleAttributes[i];
                 base.WriteXmlAttribute(node, o);
             }
         }
         base.WriteAttribute("name", "", o.Name);
         if ((o.DocumentationElement == null) && (o.DocumentationElement != null))
         {
             throw base.CreateInvalidAnyTypeException(o.DocumentationElement);
         }
         base.WriteElementLiteral(o.DocumentationElement, "documentation", "http://schemas.xmlsoap.org/wsdl/", false, true);
         ServiceDescriptionFormatExtensionCollection extensions = o.Extensions;
         if (extensions != null)
         {
             for (int j = 0; j < extensions.Count; j++)
             {
                 object obj2 = extensions[j];
                 if (obj2 is Soap12OperationBinding)
                 {
                     this.Write88_Soap12OperationBinding("operation", "http://schemas.xmlsoap.org/wsdl/soap12/", (Soap12OperationBinding) obj2, false, false);
                 }
                 else if (obj2 is HttpOperationBinding)
                 {
                     this.Write85_HttpOperationBinding("operation", "http://schemas.xmlsoap.org/wsdl/http/", (HttpOperationBinding) obj2, false, false);
                 }
                 else if (obj2 is SoapOperationBinding)
                 {
                     this.Write86_SoapOperationBinding("operation", "http://schemas.xmlsoap.org/wsdl/soap/", (SoapOperationBinding) obj2, false, false);
                 }
                 else if (obj2 is XmlElement)
                 {
                     XmlElement element = (XmlElement) obj2;
                     if ((element == null) && (element != null))
                     {
                         throw base.CreateInvalidAnyTypeException(element);
                     }
                     base.WriteElementLiteral(element, "", null, false, true);
                 }
                 else if (obj2 != null)
                 {
                     throw base.CreateUnknownTypeException(obj2);
                 }
             }
         }
         this.Write110_InputBinding("input", "http://schemas.xmlsoap.org/wsdl/", o.Input, false, false);
         this.Write111_OutputBinding("output", "http://schemas.xmlsoap.org/wsdl/", o.Output, false, false);
         FaultBindingCollection faults = o.Faults;
         if (faults != null)
         {
             for (int k = 0; k < faults.Count; k++)
             {
                 this.Write115_FaultBinding("fault", "http://schemas.xmlsoap.org/wsdl/", faults[k], false, false);
             }
         }
         base.WriteEndElement(o);
     }
 }