Bonjour,

J'ai une méthode statique où je n'arrive pas à l'utiliser:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
            /// <summary>
            /// Sérialization sous une chaîne de caractére d'un object
            /// </summary>
            /// <typeparam name="T">Type de l'object</typeparam>
            /// <param name="obj">Object à sérializer</param>
            /// <returns>la chaîne de caractère de l'object</returns>
            public static string Serialize<T>(this T obj)
            {
                var outStream = new StringWriter();
                var ser = new XmlSerializer(typeof(T));
                ser.Serialize(outStream, obj);
                return outStream.ToString();
            }
J'ai une classe user:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
    class User
    {
        public string userName { get; set; }
        public string password { get; set; }
        public string domain { get; set; }
        public string familyName { get; set; }
        public string firstName { get; set; }
    }
Je voudrais serializer l'objet user:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
    class User
    {
        public string userName { get; set; }
        public string password { get; set; }
        public string domain { get; set; }
        public string familyName { get; set; }
        public string firstName { get; set; }
    }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
            User utilisateur = new User{familyName="toto",firstName ="test"};
 
            Console.WriteLine(HelperSerialization.Serialize(utilisateur));
J'obtiens une erreur:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
Une exception non gérée du type 'System.InvalidOperationException' s'est produite dans System.Xml.dll
 
Informations supplémentaires : ConsoleApplication1.User est inaccessible en raison de son niveau de protection. Seuls les types public peuvent être traités.
Sur la ligne: var ser = new XmlSerializer(typeof(T));

Pouvez m'aider à comprendre ?

D'avance merci