Results 1 to 6 of 6

Thread: XmlSerializer probleem

  1. #1

    XmlSerializer probleem

    Ik probeer een XmlSerializer class uit de System.Xml.Serialization namespace aan te maken, maar ik heb een probleem

    De functie is zo:
    Code:
    var
      serializer: XmlSerializer;
    begin
      serializer:= XmlSerializer.Create(Type x);
    end;
    Hoe verkrijg ik de juiste gegevens voor Type. (Dit is het datatype waarvoor de serializer geldt.)
    Om mijn vraag nog duidelijker te krijgen, hoe verkrijg ik het type van een class in delphi.
    Last edited by Dees; 11-Jun-04 at 20:50.
    WM.
    What about weapons of mass construction?

  2. #2
    SillyMember
    Join Date
    May 2003
    Location
    Gent
    Posts
    7,725
    TypeOf()
    All methodologies are based on fear. -- Kent Beck.

  3. #3
    Dank je
    WM.
    What about weapons of mass construction?

  4. #4
    Code:
    class function TEntryCollection.LoadFromFile(
      filename: &string): TEntryCollection;
    var
      serializer: XmlSerializer;
      obj: TEntryCollection;
      fstream: FileStream;
    begin
      fstream:= FileStream.Create(filename,FileMode.Open,FileAccess.Read);
      serializer:= XmlSerializer.Create(TypeOf(TEntryCollection));
    
      obj:= TEntryCollection(serializer.Deserialize(fstream));
    
      fstream.Close;
    
      Result:= obj;
    end;
    Nu heb ik nog een probleem, hij geeft een InvalidCallException op deze regel:

    serializer:= XmlSerializer.Create(TypeOf(TEntryCollection));

    Toch lijkt me deze regel goed, of zit ik er volledig naast?
    WM.
    What about weapons of mass construction?

  5. #5
    SillyMember
    Join Date
    May 2003
    Location
    Gent
    Posts
    7,725
    Lijkt me redelijk in orde, al zou het kunnen dat je de bovenliggende types moet meegeven en/of het type van de items van de collectie (en de bovenliggende types).
    Ik gebruik meestal een BinaryFormatter of een SoapFormatter en heb dus weinig ervaring met het serializeren/deserializeren van collections met XMLSerializer.
    Heb wel ergens in mijn code een ArrayList gevonden, en dat ging als volgt:
    Code:
    var
      Reader: FileStream;
      Serializer: XMLSerializer;
    begin
      Reader := FileStream.Create(FFileName,FileMode.Open);
      Serializer := XmlSerializer.Create(TypeOf(ArrayList),
                     TTypeArray.Create(TypeOf(Receptacle), TypeOf(Macrolon)));
      Result := ArrayList(Serializer.Deserialize(Reader));
    Waarbij Macrolon het type van de elementen is, afgeleid van Receptacle. Achteraf gezien had ik hier beter een Array voor gebruikt, maar soit.
    Ook:
    Code:
    type
      TTypeArray = array of System.Type;
    All methodologies are based on fear. -- Kent Beck.

  6. #6

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Focus probleem onder Citrix
    By Hans Brenkman in forum Algemeen
    Replies: 9
    Last Post: 19-Feb-04, 14:49
  2. Vaag probleem. Grote van Panels
    By WhatJac3 in forum Algemeen
    Replies: 14
    Last Post: 03-Apr-03, 20:00
  3. Probleem Crystal Reports VCL component
    By JDN in forum Databases
    Replies: 2
    Last Post: 09-Jul-02, 23:17
  4. Replies: 3
    Last Post: 27-Nov-01, 13:35
  5. algorithme/functioneel probleem
    By walterheck in forum Algemeen
    Replies: 1
    Last Post: 11-Oct-01, 11:48

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •