begin process at 2010 02 10 06:18:00
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Base de données

 > 

XML

 > 

Probleme de Serialisation d'un usercontrol


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme de Serialisation d'un usercontrol

mardi 1 janvier 2008 à 21:25:22 | Probleme de Serialisation d'un usercontrol

tkd1984

Bonjour a tous le monde j'aimerais serialiser un usercontrol qui porte le nom "Table",voici les propriétés de la classe qui le représente: //nom pour la table graphiquement private String tableName; public String nomTable { get { return tableName; } set { tableName = value; } } //nom pour la table ds le programme private String table_Name; public String nom_Table { get { return table_Name; } set { table_Name = value; } } private List listattributs = new List(); public List Details { get { return listattributs; } set { listattributs = value; } } lors de l'execution j'ai le message d'erreur suivant: Une erreur s'est produite lors de la réflexion du type'MiniAgl.Table' et merci d'avance
mardi 1 janvier 2008 à 21:32:08 | Re : Probleme de Serialisation d'un usercontrol

tkd1984

execusez moi je n'arrive pas a saisir correctement mon message surtout le code,je sais pas ou il est le probléme!!!
mardi 1 janvier 2008 à 23:44:32 | Re : Probleme de Serialisation d'un usercontrol

coq

Administrateur CodeS-SourceS
Salut,

Si tu utilises un navigateur du genre Opera, il se peut que les sauts de lignes sautent.
Passe par la textbox "classique" (voir lien en bas) ou par FireFox ou Internet Explorer.



/*
coq
MVP Visual C#
CoqBlog
*/
mercredi 2 janvier 2008 à 00:29:14 | Re : Probleme de Serialisation d'un usercontrol

tkd1984

Bonjour,
oui c'est juste c'est navigateur Opera,On recomence a nouvau:

 j'aimerais serialiser un usercontrol qui porte le nom "Table",voici les propriétés de la classe qui le représente:

//nom pour la table graphiquement
privateString tableName;
publicString nomTable

      get { return tableName; } 
      set { tableName = value; }
}
//nom pour la table ds le programme

private String table_Name;
public String nom_Table
{
    get { return table_Name; } 
    set { table_Name = value; }
}
 
privateList <Attributs> listattributs = new List<Attributs>();
publicList Details
{
       get { return listattributs;}
       set { listattributs = value; }
}
lors de l'execution j'ai le message d'erreur suivant:

Une erreur s'est produite lors de la réflexion du type'MiniAgl.Table'

et merci d'avance

mercredi 2 janvier 2008 à 10:28:13 | Re : Probleme de Serialisation d'un usercontrol

coq

Administrateur CodeS-SourceS
Qu'entend tu par UserControl ? Réellement une classe héritant de la classe UserControl ?
Sinon détaille l'erreur (ne zappe pas le type de l'exception notamment), mais à vue de nez c'est un problème que l'on a quand la classe a sérialiser ne possède pas de constructeur par défaut.


/*
coq
MVP Visual C#
CoqBlog
*/
mercredi 2 janvier 2008 à 14:43:11 | Re : Probleme de Serialisation d'un usercontrol

Bidou

Administrateur CodeS-SourceS
Hi,
S'il s'agit de Serializer un UserControl, ce n'est pas possible, cette classe n'étant pas marquée [Serializable]
Il faut alors implémenter son propre Serializer ou séparer clairement la partie UI/Data pour ne Serializer que les data.


-My Blog-
mercredi 2 janvier 2008 à 18:02:29 | Re : Probleme de Serialisation d'un usercontrol

tkd1984

salut,
merci de vos réponses. Quand j'ai affiché le code de mon UserControl pour la première fois, ça m'a donné :

public
partialclassTable : UserControl
{
      
public Table()
      {
            InitializeComponent();
      }
}

donc ma classe possède un constructeur par défaut(en réponse à coq). 

maintenant, je voudrais savoir ce que tu  entends Bidou par "implémenter son propore Serializer" ?
Merci

mercredi 2 janvier 2008 à 19:32:41 | Re : Probleme de Serialisation d'un usercontrol

Bidou

Administrateur CodeS-SourceS
Il faut voir avec l'implémentation de l'interface ISerializable
[ Lien ]



-My Blog-
lundi 7 janvier 2008 à 23:52:41 | Re : Probleme de Serialisation d'un usercontrol

tkd1984

bonjour a tous le monde
et merçi "Bidou" pour votre aide ;j'ai enfin arriver a une solution aprés une long et dire recherche,voila la solution:
Dans la classe "Table" qui hérite de Usercontrole j'ai implemente 3 methods :
public System.Xml.Schema.XmlSchema GetSchema()
        {
            return null;
        }
public void ReadXml(System.Xml.XmlReader reader)
        {
            //Pas encor programmer
        }

public void WriteXml(System.Xml.XmlWriter writer)
        {
                int i = 0;

                writer.WriteStartDocument();

                writer.WriteStartElement("Table");

                writer.WriteElementString("NomTable", nomTable);
                writer.WriteElementString("Nom_Table", nom_Table);

                writer.WriteStartElement("Attributs");

                foreach (Attributs val in Details)
                {
                    writer.WriteStartElement("Attribut" + i);
                    writer.WriteElementString("ClePrimaire",                           Convert.ToString(val.clePrimaire));
                    writer.WriteElementString("NomAttribut", val.nomAttribut);
                    writer.WriteElementString("TypeAttribut", val.typeAttribut);
                    writer.WriteElementString("CleEtranger", Convert.ToString(val.cleEtrangere));
                    writer.WriteEndElement(); // close Items tag
                    i++;
                }

                writer.WriteEndElement(); // close Items tag
                writer.WriteEndElement(); // close Items tag
                writer.WriteEndDocument();
                writer.Flush();
                writer.Close();
}
et les lignes d'appel du form1 c'est:
foreach (Table tbl in this.panel1.Controls)
                    {
                        XmlTextWriter writer = new XmlTextWriter(sfdEnregistrer.FileName, null);
                        writer.Formatting = Formatting.Indented;
                        tbl.WriteXml(writer);                    
                    }
Le probléme c'est que si exists 2 tables dans le "panel1.controls" il écrase les précedents, donc il reste dans le fichier les donnes de la dernier table parcourit.
Exist-il une fonction pour ouvrir le fichier xml en mode ajoute,
car je cherche partout ,j'essai XmlDocument c'est le meme probléme
et merci d'avance...
mardi 8 janvier 2008 à 00:17:03 | Re : Probleme de Serialisation d'un usercontrol

Bidou

Administrateur CodeS-SourceS
Un fichier XML devant garder une certaine structure, il n'est pas directement possible d'ajouter des données à la suite comme dans un fichier texte par exemple.
On peut alors passer par un XmlDocument qui se chargera d'updater le DOM de façon à conserver une structure consistante. Voir les méthodes AppendChild & Co de la classe XmlDocument.



-My Blog-

1 2

Cette discussion est classée dans : table, string, private, usercontrol, tablename


Répondre à ce message

Sujets en rapport avec ce message

Pb datagrid et base de donnees [ par kakol ] Bonjour a tous.J'ai dans mon appli un datagrid qui m'affiche les tables de ma bases de donnees (le choix de la table a afficher se fait par un combobo Thread Events Invoke --> Je rends les armes .... [ par ylerazer ] Bonjour, je suis nouveau en C# et j'essaie de me faire des classes intelligentes .. mais j'ai bien peur qu'elles ne soient plus intelligentes que moi. Mettre des valeurs par defaut dans un DataGrid [ par francesdereve ] J'ai dragué un ensemble de table(5 tables) sur une forme,j'ai genenere le datasEt en question.Je veux avoir une classe qui initialise les données d'un [C#] [FxCop] Je l'aurais un jour mon perfect mais j'aurais besoin d'un coup de main [ par scoubidou944 ] Question 1 : ------------ Il me sort 'OverrideEqualsAndOperatorEqualsOnValueTypes' mais comme il s'agit d'une structure passé à une DLL système, il re Principe d'encapsulation [ par emmanuel9 ] Bonjour à tous, Quand on crée une classe en c# est ce encore d'actualité d'utilisé un accesseur et un mutateur de données pour accéder au champs pri PropertyGrid [ par romagny13 ] Bonjour :) quelqu'un saurait t'il comment faire pour afficher dans un propertyGrid une catégrie personnalisée ayant des sous-catégories (un peu comm Tableau simple en C# [ par SinXJon ] Bonjour a tous! J'essaie de me créer 2 tableau que je pourrai ens problème de boucle :Socket [ par Wiyem ] bonjour à tous.....,je suis entrain de réaliser une application de pointage (grâce aux empreintes digitales).... Présentation du projet : lo Recuperer les valeurs retourner par DirectorySearcher(ldap) dans une table oracle [ par tony671 ] Bonjour, Je veux faire un petit programme qui liste les utilisateurs Active Directory et leurs infos puis les exporter vers une table oracle afin de d odbc [ par marcog67 ] Bonjour , Comment puis je fiare pour inserer une données dans un tableau access??Voici mon code présent :private void cnxAccess()    {        cnxOdbc.


Nos sponsors


Sondage...

Comparez les prix


HTC Hero

Entre 550€ et 550€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,406 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales