Ce que j'essaie de faire est de charger des objets d'un fichier d'enregistrement XML. Le problème est que ces objets sont configurables par l'utilisateur à l'exécution, ce qui signifie que je devais utiliser la réflexion pour obtenir les noms et les attributs de ces objets stockés dans un fichier XML.
Je suis au milieu d'une boucle récursive à travers le XML et jusqu'à la partie où j'ai besoin de créer un objet, alors pensé ..... Ah - aucune idée de la façon de faire: ( p>
J'ai un tableau emballé avec des objets vides (m_menudaTypes), une de chaque type possible. Ma fonction de chargement récursive ressemble à ceci p> J'ai besoin de mettre un code sur lequel mon commentaire n'est que je ne peux pas avoir une instruction Big Switch ou quoi que ce soit. Les objets Dans mon tableau peut changer en fonction de la manière dont l'utilisateur a configuré l'application. P> P>
3 Réponses :
Vous voulez utiliser Activator.createInstance ( Type)
ICommonInterface i = (ICommonInterface)Activator.CreateInstance(menuDataObjectType)
Si l'activateur renvoie un type d'objet "est-il serviable à son type actuel? Par exemple, si je viens de le fourrer dans une arrayliste, puis-je faire quelque chose comme si (objet [4] est Turbobutton)?
L'objet renvoyé est une instance du type que vous avez transmise à CreateInstance. Vous pouvez le jeter à votre type. (ou utilisez l'opérateur, etc.). Il existe plusieurs surcharges de CreateInstance que vous devez regarder - y compris celui qui accepte un nom de type chaîne et un nom d'assemblage de chaîne.
Si vous instanciez un graphique d'objets, le XMLSerializer ou le DatacontractSertializer serait-il plus approprié? P>
Oui, c'est une bonne idée - j'ai une exigence pour qu'il soit facilement lisible à l'homme, cependant: '(
Aucune raison pour laquelle cela ne devrait pas être soigné et bien rangé si vous spécifiez suffisamment de détails dans les attributs de vos cours.
De plus, il existe déjà une charge d'autres fonctionnalités de l'application qui traite de ces fichiers XML travaillés par d'autres peeps - vous connaissez la fissure. Si c'était à moi, nous le sauverions comme crypté
Pouvons-nous voir un fragment de ce XML?
J'échoque @devnull - pourrions-nous voir le XML, s'il vous plaît?
Je ne peux pas vraiment le poster car il donne totalement ce que l'application est et ceci est le code d'entreprise - désolé les gars, imaginez votre structure imbriquée habituelle comme poisson poisson de pêche sexuellement_orientation = "puits gay" spécial_frubiles = "joue la flûte" / / poisson / Fishttank c'est une chose un peu
Souvent Shitf + Le retour ne montre pas une fois posté.