System.Xml.Serialization.XmlSerializationWriter.WriteReferencedElement C# (CSharp) Method

WriteReferencedElement() private method

private WriteReferencedElement ( string name, string ns, object o, Type ambientType ) : void
name string
ns string
o object
ambientType System.Type
return void
        private void WriteReferencedElement(string name, string ns, object o, Type ambientType)
        {
            if (name == null) name = String.Empty;
            Type t = o.GetType();
            if (t.IsArray || typeof(IEnumerable).IsAssignableFrom(t))
            {
                WriteArray(name, ns, o, t);
            }
            else
            {
                TypeEntry entry = GetTypeEntry(t);
                if (entry == null) throw CreateUnknownTypeException(t);
                WriteStartElement(name.Length == 0 ? entry.typeName : name, ns == null ? entry.typeNs : ns, null, true);
                WriteId(o, false);
                if (ambientType != t) WriteXsiType(entry.typeName, entry.typeNs);
                entry.callback(o);
                _w.WriteEndElement();
            }
        }

Same methods

XmlSerializationWriter::WriteReferencedElement ( object o, Type ambientType ) : void