Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


XmlSerializer ger fel....

Postades av 2005-09-22 20:04:24 - Jon Lindeheim, i forum c# (c-sharp), Tråden har 2 Kommentarer och lästs av 1134 personer

Har följande klasser i namespacet "Universum" som jag försöker serialisera ner till en xml-fil med XmlSerializer:

<code>
public class SolarSystem
{
private ArrayList m_myPlanets;
private Star m_mySun;
private string m_myName;
public SolarSystem(Star sun,string n)
{
m_myPlanets = new ArrayList();
m_mySun = sun;
m_myName = n;
}

public SolarSystem()
{
}

public Star getSun()
{
return m_mySun;
}

public void addPlanet(Planet p)
{
m_myPlanets.Add(p);
}

public void deletePlanets()
{
m_myPlanets.Clear();
}
public string myName
{
set
{
m_myName = value;
}
get
{
return m_myName;
}
}
public ArrayList myPlanets
{
set
{
m_myPlanets = value;
}
get {
return m_myPlanets;
}
}
}

public class SpaceBody
{
private double m_myMass;
private double m_myRadius;
public SpaceBody(double mass, double radius)
{
m_myMass = mass;
m_myRadius = radius;
Console.WriteLine("public SpaceBody()");
}
public SpaceBody()
{
}
}

public class Planet
{
public class Planet: SpaceBody
{
private string m_myName;
private string m_myDescription;
private string m_myImageUrl;
public Planet(string name,string des,string img,double m,double r):base(m,r)
{
m_myName = name;
m_myDescription = des;
m_myImageUrl = img;
Console.WriteLine("Skapade en planet: " + m_myName);
}
public Planet()
{
}
public string getName()
{
return m_myName;
}
public string getDescription()
{
return m_myDescription;
}
public string getImageUrl()
{
return m_myImageUrl;
}
public string myName
{
set
{
m_myName = value;
}
get
{
return m_myName;
}
}
}
</code>

Skapar objekt av dessa klasser och använder mig av XmlSerialize för att få ner objekten som xml i "test.xml":

<code>
SolarSystem sols = new SolarSystem();
Planet p1 = new Planet("Jorden", "En fin planet med syre och shit", @"c:\asdf\", 42743, 42342);
sols.addPlanet(p1);
p1 = new Planet("Mars", "Röd", @"c:\asdf\asdf", 43222743, 42342);
sols.addPlanet(p1);
StreamWriter sw = new StreamWriter("test.xml");
XmlSerializer xs = new XmlSerializer(typeof(SolarSystem));
xs.Serialize(sw, sols);
sw.Close();
</code>

Får felet:

System.InvalidOperationException

Details: {"The type Universum.Planet was not expected. Use the XmlInclude or SoapInclude attribute to specify types that are not known statically."}

Är XmlInclude ett attribut som man ska sätta för de klasser som ska serialiseras?
Som ni märker är jag inte helt haj på detta område men om någon har orken att läsa igenom denna monster-post och kanske ge ett tips eller två så blir jag mycket lycklig.

/Jon


Svara

Sv: XmlSerializer ger fel....

Postades av 2005-09-22 20:47:49 - Andreas Paulsson

Det hela beror på att XmlSerializer vill alltid i förväg kunna veta vilka typer som den skall deserialisera. I din property myPlanets så vet man inte vilken sorts objekt som finns i den, utan .NET antar att det är instanser av klassen Object i den.

Du måste därför ange detta. Se http://www.dotnet247.com/247reference/msgs/38/193383.aspx för en som har samma problem och får en lösning.

Dessutom så tror jag att du här har samma problem med arvshierarkin SpaceBody - Planet (i alla fall skulle du ha det om du hade en property i SolarSystem av typen SpaceBody). Se http://www.topxml.com/xmlserializer/xmlincludeattribute.asp för en beskrivning av det. det går i stort sett ut på att du beskriver vilka nedärvda klasser som kan komma att påträffas när man desserialiserar ett objekt av denn klassen.

/Andreas



Svara

Sv:XmlSerializer ger fel....

Postades av 2005-09-23 08:03:54 - Jon Lindeheim

Tack för det snabba svaret! Nu fungerar det ska bara se över strukturen som bildas i xml-filen =).

/Jon


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 166
27 952
271 704
1 420
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies