begin process at 2012 02 10 03:20:19
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Système

 > 

Fichier & Disque

 > 

Modularité & Sérialisation XML


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

Modularité & Sérialisation XML

lundi 11 février 2008 à 16:27:25 | Modularité & Sérialisation XML

Julien237

Bonjour,
J'ai une application utilisant une architecture de classes du style :

[XmlInclude(typeof(MyClassA)),
 XmlInclude(typeof(MyClassB))]
public class MyBigClass
{
   public MyAbstractClass MyClass {get; set;}

   ...
}

public abstract class MyAbstractClass {...}

public class MyClassA : MyAbstractClass {...}

public class MyClassB : MyAbstractClass {...}

Dans l'exécution de mon programme, je suis amené à sérialiser en xml des instances de MyBigClass. Jusque là, pas de problème.
Mainenant, j'aurais voulu que l'utilisateur puisse créer ses propres sous-classes de MyAbstractClass via des plug-in. Ces types ne sont plus repris dans les attributs XmlInclude de MyBigClass, et ne seront donc pas sérialisés (non ?).
Comment pourrais-je résoudre ce problème ?
Est-il possible d'ajouter des attributs dynamiquement à ma classe ? Ou une instruction permettant de faire XmlInclude d'une autre manière ?

S'il n'existe pas vraiment de solutions, c'est quand même un sacré frein à la modularité dans les applications utilisant la sérialisation xml, vous ne trouvez pas ?

Julien.
mercredi 13 février 2008 à 15:29:03 | Re : Modularité & Sérialisation XML

Antony

Bonjour,

J'ai exactement le même souci, j'aimerai rendre dynamique cette histoire de XmlInclude...
Si quelqu'un à la solution ?

Je continue mes recherches si je trouve je reviendrai dans le coin :)
samedi 15 mars 2008 à 12:20:03 | Re : Modularité & Sérialisation XML

ShareVB

salut,

dans le constructeur du XmlSerializer, il y a un paramètres "overrides" qui permet de redéfinir les attributs sur toutes les classes...

ShareVB
dimanche 16 mars 2008 à 16:22:25 | Re : Modularité & Sérialisation XML

Julien237

Salut ShareVB,
Je comprends pas, tu peux développer ?


Julien.
mardi 18 mars 2008 à 20:13:53 | Re : Modularité & Sérialisation XML

ShareVB

Réponse acceptée !
Salut,

pour faire un système de plugin, tu dois pouvoir obtenir la liste des types des plugin, par exemple, en les marquant  avec un attribut que tu crées...

en fait, ensuite, il y a un constructeur qui prend un Type et un tableau d'autres types...dans ton cas :
new XmlSerializer(typeof(base),new Type[]{ ... liste des types dérivés de "base" ... })

sinon, le constructeur prenant en paramètre un XmlOverrides permet de redéfinir les attributs "statiquement appliqués dans le code" pour chaque type ou pour chaque membre d'un type les attributs XmlXXX appliqués....

ShareVB
mardi 18 mars 2008 à 21:07:04 | Re : Modularité & Sérialisation XML

Julien237

En effet je n'avais jamais fait attention à ce constructeur qui résout ce problème...
Merci !


Julien.


Cette discussion est classée dans : public, class, xml, myabstractclass, xmlinclude


Répondre à ce message

Sujets en rapport avec ce message

[c#] Sérialisation en XML [ par oberown ] Pour sérialiser en XML, il fut mettre les attributs des classes en public.Est-il possible de sérialiser en l-aissant les attributs en private ?Est-ce [C#]Comment fermé un xml ouvert par XmlDocument. [ par PascalCmoa ] PascalCmoa email: PascalCmoaBonjour à tous <img src=/img [C#] XML - Serialisation & reflexion (la j'en manque;p) [ par scoubidou944 ] Bon autant dire que j'en bave avec XMLL'init passe pas : XmlTextWriter oWriter = new XmlTextWriter (@"d:\test2.xml", < Attribut Xml [ par matlocker ] Bonjour,Je viens de lire un article sur msdn sur la creation de Flux RSS à l'adresse suivante http://www.microsoft.com/france/msdn/vbasic/rss_creation retourner une structure [ par bip98 ] J'ai trouve un lien qui en parle... mais il me semble pas très juste:http://www.csharpfr.com/forum.v2.aspx?ID=189261Voilà mon cas: public struct struc Constructeur "intelligent" [ par revlis ] BonjourJ'ai des class hérité de userControl et je voudrait passer les composant a une class qui les initilise et construit si besoinpour cela j'ai fai Définir une base de langue à l'aide d'Xml [ par cfz ] Bonjour, Etant un ancien développeur VB6 je souhaite me remettre au gout du jour avec .Net et C# depuis quelques jours... mais ce n'est pas toujours t [.NET2] acceder a une fonction de Form1 dans une autre classe [ par ChamY ] Bonjour,J'ai une question toute bete je pense, mais qui me pose un ptit probleme.Je dispose d'une forme avec ca class (class form1), j ai egalement un Je trouve tjs pas de solution pour mon blem "A l'aide" [ par hred1 ] Bon j'explique tout:J'ai le même namespace par toutje suis dans la class 1 (class fraim ok)et je cherche à appler  methode() qui de trouve dans class Dérivation de classe abstraite [ par yoh_777 ] Je voudrais simplement dériver une classe abstraite ayant un constructeur comportant un paramètre.  Voici mon programme  <div style="border: 1pt d


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

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,671 sec (3)

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