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