Je sérialise un objet, mais j'aimerai que certains champs ne soient pas sérialisés.

L'attribut NonSerialized semble ne pas fonctionner.
Quelqu'un pourrait-il m'éclairer sur le pb ?

Voici mon code :

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
using System;

namespace Serialisation
{
	/// <summary>
	/// Description résumée de OBJ_SERIAL.
	/// </summary>
	[Serializable()]
	public class OBJ_SERIAL
	{
		public OBJ_CHILD Child;
		[NonSerialized()]public string Test = "toto";
		public OBJ_SERIAL()
		{
			OBJ_CHILD Child = new OBJ_CHILD();
		}
		private string _Nom = "Exemple de sérialisation";
		public string Nom
		{
			get
			{
				return _Nom;
			}
			set
			{
				_Nom = value;
			}
		}
		private System.Drawing.Color _Couleur = System.Drawing.Color.AliceBlue;
		public System.Drawing.Color Couleur
		{
			get
			{
				return _Couleur;
			}
			set
			{
				_Couleur = value;
			}
		}
	}
}
Et ma fonction de sérialisation :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
		public static bool Serialize(object objet, string fichier, System.Type mytype)
		{
			if (objet == null)
				return false;
			StreamWriter stream = new StreamWriter(fichier);
			XmlSerializer serializer = new XmlSerializer(mytype);
			serializer.Serialize(stream, objet);
			stream.Close();
			return true;
		}