[C#] Class member wil niet serializen

Pagina: 1
Acties:

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 15-05 14:44

_Thanatos_

Ja, en kaal

Topicstarter
Ik heb een webservice geschreven waarin een array van classes returned wordt. Nu wilde ik de XML die dat oplevert aanpassen. Ik heb daarvoor de class aangepast met een tweetal attributen op de members ervan:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
public class FieldData
{
    [XmlAttribute] public string Name;
    [XmlText] public string Value;

    public FieldData() { }

    public FieldData(string Name, string Value) 
    {
        this.Name = Name;
        this.Value = Value;
    }
}
Hij moet nu dus elementen met de naam FieldData uitpoepen, die ieder een attribuut Name hebben, en de content van die elementen moet gevuld worden met de waarde van Value.

Probleem is alleen dat de Name juist in de content van het element komt. En de GUI van de webservice (standaard MS gegenereerd ding) geeft em als volgt aan:
XML:
1
<FieldData Name="string" />

Terwijl ik em zo verwacht, met bovenstaande class:
XML:
1
<FieldData Name="string">string</FieldData>
Ik heb al eea gevogeld met andere attributen. Ik heb de class een XmlRoot attribuut en een Serializable attribuut gegeven, ik heb de Type property van het XmlText hardhandig op typeof(string) ingesteld. Hielp allemaal niet.

Doe ik iets fout, of kan het gewoon niet wat ik wil?

[ Voor 3% gewijzigd door _Thanatos_ op 14-10-2004 11:42 ]

日本!🎌


  • EfBe
  • Registratie: Januari 2000
  • Niet online
<FieldData Name="string" /> is hetzelfde als <FieldData Name="string">string</FieldData> alleen is de inner string leeg.

Serializable attribute toevoegen heeft niets te maken met XmlSerializer of webservices, die heeft betrekking op soap/binary formatter serialization gebruikt in remoting.

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 15-05 14:44

_Thanatos_

Ja, en kaal

Topicstarter
<FieldData Name="string" /> is hetzelfde als <FieldData Name="string">string</FieldData> alleen is de inner string leeg.
Het is niet hetzelfde in de webservice GUI. Die woordjes "string" zijn nml, zoals je weet, placeholders voor waardes. Dus wat je zegt klopt wel, maar je helpt me er niet mee.

Laat ik het nóg duidelijker maken, hij serialiseert als
<FieldData Name="naampje">naampje</FieldData>

Terwijl ik verwacht
<FieldData Name="naampje">waarde</FieldData>

Waarbij FieldData.Name="naampje" en FieldData.Value="waarde".

[ Voor 14% gewijzigd door _Thanatos_ op 14-10-2004 13:18 ]

日本!🎌