IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

[Deserialization] constructeur introuvable


Sujet :

C#

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Points : 338
    Points
    338
    Par défaut [Deserialization] constructeur introuvable
    Bonjour,

    Je suis entrain de realiser un Mappeur avec de generè des carte de jeux 2D pour un petit jeu que je voudrais realiser.

    Ce mappeur possederas des ressources (nom, image, hauteur, largeur) qui seront utiliser lors de la realisation des cartes

    La serialization se fait très bien mais lors de la deserialization j'obtient
    Le constructeur est introuvable pour désérialiser un objet de type MedievalWars_Mapping.Ressource
    mon objet "Ressource" possede des accesseurs sur tout ses champs, une constructeur de base et un autre avec parametre.

    Ressource.cs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    using System;
    using System.Drawing;
    using System.Runtime.Serialization;
    using System.Windows;
     
    namespace MedievalWars_Mapping
    {
        [Serializable]
        public class Ressource : ISerializable
        {
            #region Accesseurs
     
            private string _nom;
            public string Nom
            {
                get { return _nom; }
                set { _nom = value; }
            }
     
            private int _hauteur;
            public int Hauteur
            {
                get { return _hauteur; }
                set { _hauteur = value; }
            }
     
            private int _largeur;
            public int Largeur
            {
                get { return _largeur; }
                set { _largeur = value; }
            }
     
            private Image _image;
            public Image Image
            {
                get { return _image; }
                set { _image = value; }
            }
     
            #endregion
     
            #region Constructeurs
     
            public Ressource() 
            {
                MessageBox.Show("constructeur par default");
            }
     
            public Ressource(string nom, int hauteur, int largeur, Image image)
            {
                _nom = nom;
                _hauteur = hauteur;
                _largeur = largeur;
                _image = image;
            }
     
            #endregion
     
            #region ISerializable Membres
     
            public void GetObjectData(SerializationInfo info, StreamingContext context)
            {
                info.AddValue("Nom", _nom, typeof(string));
                info.AddValue("Hauteur", _hauteur, typeof(int));
                info.AddValue("Largeur", _largeur, typeof(int));
                info.AddValue("Image", _image, typeof(Image));
            }
     
            #endregion
        }
    }
    Serialization
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    System.Drawing.Image img = new System.Drawing.Bitmap(txtUri.Text);
    Ressource r = new Ressource(txtNomRessource.Text, int.Parse(txtHauteur.Text), int.Parse(txtLargeur.Text), img);
     
    string startPath = "";
    for (int i = 0; i < Assembly.GetExecutingAssembly().Location.Split('\\').Length - 1; i++)
        startPath += Assembly.GetExecutingAssembly().Location.Split('\\')[i] + "\\";
     
    BinaryFormatter binaryFormatter = new BinaryFormatter();
    Stream stream = File.OpenWrite(startPath + @"Ressources\map1.mw_map");
     
    binaryFormatter.Serialize(stream, r);
    stream.Close();
    Deserialization:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    try
    {
        string startPath = "";
        for (int i = 0; i < Assembly.GetExecutingAssembly().Location.Split('\\').Length - 1; i++)
            startPath += Assembly.GetExecutingAssembly().Location.Split('\\')[i] + "\\";
     
        IFormatter binaryFormatter = new BinaryFormatter();
        Stream stream = File.OpenRead(startPath + @"Ressources\map1.mw_map");
     
        ressourceSelectionner = (Ressource)binaryFormatter.Deserialize(stream);
     
        stream.Close();
    }
    catch (Exception ex) { MessageBox.Show(ex.Message); }

    merci pour votre aide, j'ai analyser de nombreux code de serialization sur internet et la je ne vois pas vraiment

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Points : 338
    Points
    338
    Par défaut
    problème resolut

    Codes-Sources
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public Ressource(SerializationInfo info, StreamingContext ctxt)
    {
        _nom = (string)info.GetValue("NOM", typeof(string));
        _hauteur = (int)info.GetValue("HAUTEUR", typeof(int));
        _largeur= (int)info.GetValue("LARGEUR", typeof(int));
        _image = (Image)info.GetValue("IMAGE", typeof(Image));
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Constructeur introuvable = pointeur null
    Par Koerty dans le forum Langage
    Réponses: 1
    Dernier message: 05/09/2012, 16h43
  2. Constructeur introuvable?
    Par Giansolo dans le forum C++
    Réponses: 2
    Dernier message: 21/03/2012, 10h20
  3. Le constructeur sur le type 'Classe' est introuvable
    Par jeandadaf dans le forum VB.NET
    Réponses: 4
    Dernier message: 23/07/2009, 22h04
  4. Réponses: 2
    Dernier message: 09/05/2006, 12h30
  5. [] Datareport.orientation introuvable même avec sp5
    Par khany dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 08/01/2003, 10h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo