Vra

  

Moontlike Dubbele:
   Hoe kan ek afleveringen n enum waarde as 'n int?

Hi, almal!

Ek wonder of daar 'n manier om die serialisasie van 'n enum waarde dwing om in sy heelgetal waarde, in plaas van sy string verteenwoordiging.

Om jou in konteks te plaas: Ons gebruik, in 'n web-program, wat swaar op web dienste, 'n enkele baseclass vir al ons versoek kop, onafhanklik van die tipe versoek.

Ek wil gevolg veld om die kop te voeg, sodat ons 'n plek om wenke terug na die roeping app slaag ten opsigte van hoe die operasie gegaan op die web diens kant het. Ons het reeds 'n enum te dien effekte verklaar, maar omdat ons nalatenskap programme wat 'n beroep op diegene web dienste wat nie kan weet oor die enums, wil ek graag afleveringen daardie waardes as heelgetalle te stuur.

Ons het reeds moes kap op die lengte van die kop deur die gebruik van die [XmlElement (ElementName = "string representationOfAttributeName")] omdat ons soms oorskry IE maksimum url lengte, en ek het gewonder of daar is 'n soortgelyke eienskappe te dwing die serialisasie van enum waardes in heelgetalle.

Enigiemand ooit gehoor van so 'n kenmerk?

As ooit, dankie vir die hulp, Pascal

Was dit nuttig?

Oplossing

Enums doen afleveringen om SY. Maar oor die algemeen, as jy nie hou van die manier waarop een van jou eiendom kry serialized om XML, jy kan net dit te doen:

[XmlIgnore]
public MyThing MyThing { get; set; }

[XmlElement("MyThing")]
[EditorBrowsable(EditorBrowsableState.Never), Browsable(false)]
public string MyThingForSerialization
{
    get { return //convert MyThing to string; }
    set { MyThing = //convert string to MyThing; }
}

Ander wenke

Enums NIE afleveringen as int as verstek. Ek gebruik XMLSerializer om 'n klas afleveringen en ek het dieselfde probleem as beskryf.

(Die voorbeeld van Matt Howells blyk te werk as jy die omvang van MyThingForSerialization verander publiek nie, maar ek wil graag 'n beter implementering oorsaak sien dit skep 1 ekstra openbare eiendom)

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top