Bonjour,
Je vous propose un nouvel élément à utiliser : Serialisation Généique
Un petit exemple avec sérialisation générique applicable a tout modèle de classe
Qu'en pensez-vous ?
Bonjour,
Je vous propose un nouvel élément à utiliser : Serialisation Généique
Un petit exemple avec sérialisation générique applicable a tout modèle de classe
Qu'en pensez-vous ?
L'ensemble du code proposé se base sur :
Or, il y a des cas où ce morceau de code ne fonctionne pas (pas de constructeur sans argument ou non publique).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 //On crée une instance de XmlSerializer dans lequel on lui spécifie le type //de l'objet à sérialiser. On utiliser l'opérateur typeof pour cela. XmlSerializer serializer = new XmlSerializer(typeof(T));
Cette problématique a été vue ici : XmlSerializer : sérialiser mon propre objet
Cependant, il n'y a pas de FAQ parlant de la sérialisation en C# et de ces problématiques. Ce code peut-être ajouter avec les avertissement nécessaire.
source: IXmlSerializable InterfaceA class that implements the interface must have a parameterless constructor. This is a requirement of the XmlSerializer class.
Si une réponse vous a été utile pensez à![]()
Si vous avez eu la réponse à votre question, marquez votre discussion
Pensez aux FAQs et aux tutoriels et cours.
Il faut juste avoir des objets Public !!!
Non.Comme précédemment cité :
A class that implements the interface must have a parameterless constructor.
Si une réponse vous a été utile pensez à![]()
Si vous avez eu la réponse à votre question, marquez votre discussion
Pensez aux FAQs et aux tutoriels et cours.
Si tu teste l'exemple il n'y a pas des constructeurs !!
Oui, sauf qu'une classe n'ayant pas de constructeur déclaré à par défaut le constructeur sans paramètres :
Donc, oui ton code ne déclare pas de constructeur. Cependant, ton code nécessite bien un constructeur sans paramètres qui est fournit automatiquement dans ton cas. Il y aura une erreur, dans le cas où l'une des classes à sérialiser ou dé sérialiser déclare un constructeur avec paramètres et ne déclare pas de constructeurs sans paramètres.If a class contains no instance constructor declarations, a default instance constructor is automatically provided. That default constructor simply invokes the parameterless constructor of the direct base class. If the direct base class does not have an accessible parameterless instance constructor, a compile-time error occurs. If the class is abstract then the declared accessibility for the default constructor is protected. Otherwise, the declared accessibility for the default constructor is public.
Source : https://msdn.microsoft.com/en-us/lib...=vs.71%29.aspx
Si une réponse vous a été utile pensez à![]()
Si vous avez eu la réponse à votre question, marquez votre discussion
Pensez aux FAQs et aux tutoriels et cours.
Bonjour,
Oui il n'y a pas de constructeurs car ils sont implicites, dans le cas ou il n'y en a pas de précisé le compilateur crée un constructeur vide sans paramètre.
Mais rien n'empêche de créer un constructeur sans paramètre et de le définir comme private pour que justement il ne soit instanciable sans paramètre, c'est même plutot fréquent dans le monde de la POO je dirais.
Un véhicule a forcément un nombre de roue donc la classe véhicule sera instaciable uniquement à partir d'un entier supérieur à 0 par exemple, et on créera un constructeur privé, sans paramètre, dans lequel on initialisera les variables privée par exemple.
[EDIT] désolé j'ai 3 post de retard...
J@ck.
Partager