Attribut XML de ne pas obtenir de préfixe d'espace de noms

J'ai besoin de générer le fichier XML suivant lors de la sérialisation:
(fragment)

<IncidentEvent a:EventTypeText="Beginning" xmlns:a="http://foo">
  <EventDate>2013-12-18</EventDate>
  <EventTime>00:15:28</EventTime>
</IncidentEvent>

La classe en question ressemble à ceci:

public class IncidentEvent
{
    public string EventDate { get; set; }
    public string EventTime { get; set; }

    [XmlAttribute("EventTypeText", Namespace = "http://foo")]
    public string EventTypeText { get; set; }

}

Il semble que le processus est à remarquer que l'espace de noms est déjà déclaré dans un xmlns: à la racine et est ignorant mon attribut. J'ai aussi essayé le suivant:

[XmlRoot(Namespace = "http://foo")]
public class IncidentEvent
{
    public string EventDate { get; set; }
    public string EventTime { get; set; }

    private XmlSerializerNamespaces _Xmlns;

    [XmlNamespaceDeclarations]
    public XmlSerializerNamespaces Xmlns
    {
        get
        {
            if (_Xmlns == null)
            {
                _Xmlns = new XmlSerializerNamespaces();
                _Xmlns.Add("ett", "http://foo");
            }

            return _Xmlns;
        }

        set
        {
            _Xmlns = value;
        }
    }


    [XmlAttribute("EventTypeText", Namespace = "http://foo")]
    public string EventTypeText { get; set; }

}

Cette résultats dans le fichier XML suivant:

  <ett:IncidentEvent EventTypeText="Beginning" xmlns:ett="http://foo">
    <ett:EventDate>2013-12-18</ett:EventDate>
    <ett:EventTime>00:15:28</ett:EventTime>
  </ett:IncidentEvent>

Qui n'est pas ce que je veux. L'élément ne doit pas être précédé, l'attribut doit être. Ce qui est nécessaire pour obtenir le sérialiseur pour comprendre ce que je veux?

InformationsquelleAutor Devin Goble | 2013-12-18