System.Xml.Serialization.ReflectionXmlSerializationWriter.WriteAttribute C# (CSharp) Method

WriteAttribute() private method

private WriteAttribute ( object memberValue, AttributeAccessor attribute, object parent ) : void
memberValue object
attribute AttributeAccessor
parent object
return void
        private void WriteAttribute(object memberValue, AttributeAccessor attribute, object parent)
        {
            if (attribute.Mapping is SpecialMapping)
            {
                // TODO: this block is never hit by our tests.
                SpecialMapping special = (SpecialMapping)attribute.Mapping;
                if (special.TypeDesc.Kind == TypeKind.Attribute || special.TypeDesc.CanBeAttributeValue)
                {
                    WriteXmlAttribute((XmlNode)memberValue, parent);
                }
                else
                    throw new InvalidOperationException(SR.XmlInternalError);
            }
            else
            {
                string ns = attribute.Form == XmlSchemaForm.Qualified ? attribute.Namespace : "";
                WritePrimitive(WritePrimitiveMethodRequirement.WriteAttribute, attribute.Name, ns, attribute.Default, memberValue, attribute.Mapping, false, false, false);
            }
        }