Pb avec une librairie

Résolu
johnnous Messages postés 100 Date d'inscription jeudi 3 mars 2005 Statut Membre Dernière intervention 24 mai 2013 - 25 nov. 2008 à 02:39
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 - 25 nov. 2008 à 13:06
Bonjour
je suis debut en c# et je voudrais créér une librairie afin de l'utiliser dans tous mes projets
dans ma form j'avais le code suivant
        private void btnSerialiser_Click(object sender, System.EventArgs e)
        {
            System.IO.StreamWriter sw = new StreamWriter("config.xml");
            sw.WriteLine("");
            sw.Close();
        }
tout marche super mais maintenant j'essais de le mettre dans une class pour y faire réference ensuite et là plus rien ne compil

voici mon code
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Xml;
using System.Xml.Serialization;
using System.IO;
using System.Data;

namespace KF_ClassSerialisation
{
    public class Serial
    {
                    StreamWriter sw = new StreamWriter("config.xml");
       
            sw.WriteLine("");
            sw.Close();
        }

    }
}

quelqu'un peux m'aider
merci
Jean louis

4 réponses

Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
25 nov. 2008 à 05:02
Salut, une classe ne peut pas contenir directement du code hormis des déclarations. Tu dois metttre ton code dans une fonction.

public class MyClass
{
    public void MyFunction( )
    {
        // ..
    }



    public static void MyStaticFunction( )
    {
        // ..
    }
}

// Dans une autre fonction
// S'utilise comme ça :
MyClass myClass = new MyClass( );
myClass.MyFunction( );
// ou comme ça :
MyClass.MyStaticFunction( );

Pour le XML regarde aussi du coté des classes XmlWriter et XmlTextWriter.
3
johnnous Messages postés 100 Date d'inscription jeudi 3 mars 2005 Statut Membre Dernière intervention 24 mai 2013
25 nov. 2008 à 09:08
Merci
il y a du beaucoup mieux mais il me reste un point
je veux recupere les éléments de ma forme
 j'ai essayer ça

KF_ClassSerialisation.Serialisation( Forms);           
mais erreur de compil
Erreur    1    Le type ou le nom d'espace de noms 'Serialisation' n'existe pas dans la classe ou l'espace de noms 'KF_ClassSerialisation' (une référence d'assembly est-elle manquante ?)    D:\Download\C#\SERIALISATION_JLR\Form1.cs    380    35    testSerialization

et dans ma classe
namespace KF_ClassSerialisation
{
    public class KF_ClassSerialisation
    {
    public static void Serialisation(Form MyForm)
    {

merci encore

Jean louis
0
johnnous Messages postés 100 Date d'inscription jeudi 3 mars 2005 Statut Membre Dernière intervention 24 mai 2013
25 nov. 2008 à 10:00
j'ai trouver un truc dis moi si c'est correct
KF_ClassXML.Form.Deserialisation(this.Name, "Config.xml");

namespace KF_ClassXML
{
    public class Form
    {
   
    public static void Serialisation(string  FormName, string FileXmlName)
    {
        StreamWriter sw = new StreamWriter(FileXmlName);
        FormCollection Userform = Application.OpenForms;
        sw.WriteLine("<Config>");

        foreach (Control c in Userform[FormName].Controls)
                {

Jean louis
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
25 nov. 2008 à 13:06
C'est correct mais il y a plus simple :

public partial class MyForm : Form
{
    public MyForm( )
    {
        InitializeComponent( );



        // ça :
        MyClass.MyFunction( this );
        // ou ça :
        MyClass.MyFunction2( this.Controls );
    }
}



public class MyClass
{
    public static void MyFunction( Form form )
    {
        foreach( Control ctrl in form.Controls )
            MessageBox.Show( ctrl.Name );
    }



    public static void MyFunction2( Control.ControlCollection ctrls  )
    {
        foreach( Control ctrl in ctrls )
            MessageBox.Show( ctrl.Name );
    }
}
0
Rejoignez-nous