WriteArrayBase64() static private méthode

static private WriteArrayBase64 ( XmlWriter writer, byte inData, int start, int count ) : void
writer System.Xml.XmlWriter
inData byte
start int
count int
Résultat void
 /// <include file='doc\XmlSerializationWriter.uex' path='docs/doc[@for="XmlSerializationWriter.WriteValue01"]/*' />
 protected void WriteValue(byte[] value)
 {
     if (value == null)
     {
         return;
     }
     XmlCustomFormatter.WriteArrayBase64(_w, value, 0, value.Length);
 }
        /// <include file='doc\XmlSerializationWriter.uex' path='docs/doc[@for="XmlSerializationWriter.WriteAttribute01"]/*' />
        protected void WriteAttribute(string localName, byte[] value)
        {
            if (value == null)
            {
                return;
            }

            _w.WriteStartAttribute(null, localName, (string)null);
            XmlCustomFormatter.WriteArrayBase64(_w, value, 0, value.Length);
            _w.WriteEndAttribute();
        }
 /// <include file='doc\XmlSerializationWriter.uex' path='docs/doc[@for="XmlSerializationWriter.WriteElementStringRaw03"]/*' />
 protected void WriteElementStringRaw(String localName, String ns, byte[] value, XmlQualifiedName xsiType)
 {
     if (value == null)
     {
         return;
     }
     _w.WriteStartElement(localName, ns);
     if (xsiType != null)
     {
         WriteXsiType(xsiType.Name, xsiType.Namespace);
     }
     XmlCustomFormatter.WriteArrayBase64(_w, value, 0, value.Length);
     _w.WriteEndElement();
 }
 /// <include file='doc\XmlSerializationWriter.uex' path='docs/doc[@for="XmlSerializationWriter.WriteAttribute0"]/*' />
 protected void WriteAttribute(string localName, string ns, byte[] value)
 {
     if (value == null)
     {
         return;
     }
     if (localName == "xmlns" || localName.StartsWith("xmlns:", StringComparison.Ordinal))
     {
         ;
     }
     else
     {
         int colon = localName.IndexOf(':');
         if (colon < 0)
         {
             if (ns == XmlReservedNs.NsXml)
             {
                 string prefix = _w.LookupPrefix(ns);
                 if (prefix == null || prefix.Length == 0)
                 {
                     prefix = "xml";
                 }
                 _w.WriteStartAttribute("xml", localName, ns);
             }
             else
             {
                 _w.WriteStartAttribute(null, localName, ns);
             }
         }
         else
         {
             string prefix = localName.Substring(0, colon);
             prefix = _w.LookupPrefix(ns);
             _w.WriteStartAttribute(prefix, localName.Substring(colon + 1), ns);
         }
         XmlCustomFormatter.WriteArrayBase64(_w, value, 0, value.Length);
         _w.WriteEndAttribute();
     }
 }
        /// <include file='doc\XmlSerializationWriter.uex' path='docs/doc[@for="XmlSerializationWriter.WriteTypedPrimitive"]/*' />
        protected void WriteTypedPrimitive(string name, string ns, object o, bool xsiType)
        {
            string value = null;
            string type;
            string typeNs            = XmlSchema.Namespace;
            bool   writeRaw          = true;
            bool   writeDirect       = false;
            Type   t                 = o.GetType();
            bool   wroteStartElement = false;

            switch (t.GetTypeCode())
            {
            case TypeCode.String:
                value    = (string)o;
                type     = "string";
                writeRaw = false;
                break;

            case TypeCode.Int32:
                value = XmlConvert.ToString((int)o);
                type  = "int";
                break;

            case TypeCode.Boolean:
                value = XmlConvert.ToString((bool)o);
                type  = "boolean";
                break;

            case TypeCode.Int16:
                value = XmlConvert.ToString((short)o);
                type  = "short";
                break;

            case TypeCode.Int64:
                value = XmlConvert.ToString((long)o);
                type  = "long";
                break;

            case TypeCode.Single:
                value = XmlConvert.ToString((float)o);
                type  = "float";
                break;

            case TypeCode.Double:
                value = XmlConvert.ToString((double)o);
                type  = "double";
                break;

            case TypeCode.Decimal:
                value = XmlConvert.ToString((decimal)o);
                type  = "decimal";
                break;

            case TypeCode.DateTime:
                value = FromDateTime((DateTime)o);
                type  = "dateTime";
                break;

            case TypeCode.Char:
                value  = FromChar((char)o);
                type   = "char";
                typeNs = UrtTypes.Namespace;
                break;

            case TypeCode.Byte:
                value = XmlConvert.ToString((byte)o);
                type  = "unsignedByte";
                break;

            case TypeCode.SByte:
                value = XmlConvert.ToString((sbyte)o);
                type  = "byte";
                break;

            case TypeCode.UInt16:
                value = XmlConvert.ToString((UInt16)o);
                type  = "unsignedShort";
                break;

            case TypeCode.UInt32:
                value = XmlConvert.ToString((UInt32)o);
                type  = "unsignedInt";
                break;

            case TypeCode.UInt64:
                value = XmlConvert.ToString((UInt64)o);
                type  = "unsignedLong";
                break;

            default:
                if (t == typeof(XmlQualifiedName))
                {
                    type = "QName";
                    // need to write start element ahead of time to establish context
                    // for ns definitions by FromXmlQualifiedName
                    wroteStartElement = true;
                    if (name == null)
                    {
                        _w.WriteStartElement(type, typeNs);
                    }
                    else
                    {
                        _w.WriteStartElement(name, ns);
                    }
                    value = FromXmlQualifiedName((XmlQualifiedName)o, false);
                }
                else if (t == typeof(byte[]))
                {
                    value       = String.Empty;
                    writeDirect = true;
                    type        = "base64Binary";
                }
                else if (t == typeof(Guid))
                {
                    value  = XmlConvert.ToString((Guid)o);
                    type   = "guid";
                    typeNs = UrtTypes.Namespace;
                }
                else
                {
                    throw CreateUnknownTypeException(t);
                }
                break;
            }
            if (!wroteStartElement)
            {
                if (name == null)
                {
                    _w.WriteStartElement(type, typeNs);
                }
                else
                {
                    _w.WriteStartElement(name, ns);
                }
            }

            if (xsiType)
            {
                WriteXsiType(type, typeNs);
            }

            if (value == null)
            {
                _w.WriteAttributeString("nil", XmlSchema.InstanceNamespace, "true");
            }
            else if (writeDirect)
            {
                // only one type currently writes directly to XML stream
                XmlCustomFormatter.WriteArrayBase64(_w, (byte[])o, 0, ((byte[])o).Length);
            }
            else if (writeRaw)
            {
                _w.WriteRaw(value);
            }
            else
            {
                _w.WriteString(value);
            }
            _w.WriteEndElement();
        }