protected void ParseWsdlArrayType(XmlAttribute attr) { if (attr.NamespaceURI == wsdlNS && attr.LocalName == arrayType) { string ns = "", type, dimensions; TypeTranslator.ParseArrayType(attr.Value, out type, out ns, out dimensions); if (ns != "") { ns = Reader.LookupNamespace(ns) + ":"; } attr.Value = ns + type + dimensions; } }
protected void WriteXmlAttribute(XmlNode node, object container) { XmlAttribute attr = node as XmlAttribute; if (attr == null) { throw new InvalidOperationException("The node must be either type XmlAttribute or a derived type."); } if (attr.NamespaceURI == XmlSerializer.WsdlNamespace) { // The wsdl arrayType attribute needs special handling if (attr.LocalName == "arrayType") { string ns, type, dimensions; TypeTranslator.ParseArrayType(attr.Value, out type, out ns, out dimensions); string value = GetQualifiedName(type + dimensions, ns); WriteAttribute(attr.Prefix, attr.LocalName, attr.NamespaceURI, value); return; } } WriteAttribute(attr.Prefix, attr.LocalName, attr.NamespaceURI, attr.Value); }