Frage

Von dem MusicBrainz REST-Service, ich folgende xml erhalten:

<artist-list offset="0" count="59">
  <artist type="Person" id="xxxxx" ext:score="100">
  ...

Mit WCF und XmlSerializationFormat, ich bin in der Lage, die Art und id Attribute zu bekommen ... aber wie bekomme ich die „ext: score“? Eine

Das funktioniert:

  public class Artist
  {
    [XmlAttribute("id")]
    public string ID { get; set; }

    [XmlAttribute("type")]
    public ArtistType Type { get; set; }

Aber das tut:

[XmlAttribute("ext:score")]
public string Score { get; set; }

Es produziert eine Serialisierung Ausnahme. Ich habe auch nur mit „Score“ versucht, aber es funktioniert nicht.

Jede Hilfe?

War es hilfreich?

Lösung

Das Attribut ist Namen "score" und ist im Namensraum von "ext" verwiesen, die vermutlich ist ein XML-Namespace alias.

So finden was "ext" zuordnet (suchen Sie nach einem xmlns), und fügen Sie:

[XmlAttribute("score", Namespace="http://example.org/ext-9.1#")]
public string Score { get; set; }

Edit; gefunden hier ; siehe xmlns:ext="http://example.org/ext-9.1#". Beachten Sie auch, dass die wichtigsten Objekte in xmlns="http://musicbrainz.org/ns/mmd-1.0#" zu sein scheinen, die Sie Konto müssen an der Wurzel / Objektebene für.

Andere Tipps

Die ext ist der Namespace des score Attribut. Versuchen Sie die Angabe des Namespace:

[XmlAttribute(AttributeName="score", Namespace="the ext namespace")]
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top