/// <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(); }