22. februar 2008 - 12:56Der er
9 kommentarer og 1 løsning
XDocument, og XDeclaration fejl.
Jeg skal forsøg at lave et xml dokument med linq. Altså jeg skal benytte linq, da det ikke fylder så meget i koden og dermed giver bedre overkuelighed.
jeg har derfor laves en webservice som jeg skal bruge, og lagt denne metode ind:
[WebMethod] public XDocument HelloWorld1() { XDocument xDoc = new XDocument(); xDoc.Add(new XElement("item", "value"));
return xDoc; }
jeg prøver at compilie, og denne fejl kommer:
System.Xml.Linq.XDeclaration kan ikke serialiseres, fordi den ikke har en konstruktør uden parametre. Beskrivelse: Der opstod en undtagelse, der ikke blev behandlet, under udførelse af den aktuelle webanmodning. Se staksporingen for at få yderligere oplysninger om fejlen, og hvor den kom fra i koden.
Detaljer om undtagelse: System.InvalidOperationException: System.Xml.Linq.XDeclaration kan ikke serialiseres, fordi den ikke har en konstruktør uden parametre.
Kildefejl:
Der blev oprettet en undtagelse, der ikke blev behandlet, under kørsel af den aktuelle webanmodning. Du kan finde oplysninger om undtagelsens oprindelse og placering ved hjælp af nedenstående staksporing af undtagelser.
Jeg forstår det ikke ... jeg har ikke lavet noget kode, som har med denne fejl at gøre.
XDocument xDoc = new XDocument(new XDeclaration("1.0", "utf-8", "yes"));
xDoc.Add(new XElement("item", "value"));
return xDoc.ToString(); }
Sådan her: så har jeg dette output: <string><item>value</item></string>
Der må da være en måde, hvor jeg kan returner en XDocument, hvad skulle pointet ellers være ved at bruge linq, lige udover at koden bliver mere overskuelig.
Både XmlDocument og XDocument er .NET specifikke klasser.
En string med XML er portabel.
Det er muligt at det går godt med at sende et XmlDocument fordi den tilfældigvis er seriazable, men der er ikke meget pointe. Et Java/PHP/Python/whatever program kan ikke bruge en System.Xml.XmDocument til noget.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.