Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

GÉNÉRATEUR DE DOCUMENTATION (LIB POUR RÉFLECTION ET XMLDOC)


Information sur la source

Catégorie :.NET Source .NET ( DotNet ) Classé sous : Reflection, XmlDoc, Template, GacManagedAccess Niveau : Initié Date de création : 08/11/2007 Date de mise à jour : 08/11/2007 20:07:44 Vu / téléchargé: 4 493 / 134

Note :
Aucune note

Commentaire sur cette source (14)
Ajouter un commentaire et/ou une note


Description

Ce code permet de générer une document html basé sur un template à partir d'une liste de type définit.

Il reste encore quelque souci avec l'affichage des génériques.

Indépendament, les fonctionnalités intéressantes sont :
Utilisation de la réflexion
Accès à la XmlDoc à partir d'un membre
Utilisation de template basée sur des tags (1 à n)

Concernant L'espace de nom : System.GACManagedAccess, il n'est pas de moi ( voir : Junfeng Zhang's http://blogs.msdn.com/junfeng/articles/229649.aspx )
J'y ai juste ajouté une classe pour me simplifier la vie, GACService

 

Source

  • // NE PAS OUBLIER DE DEFINIR CES TROIS CHEMIN DANS LA METHODE MAIN
  • // Chemin vers le template html et la feuille de style
  • const string PATH_TEMPLATE = "C:\ClassTemplate.htm";
  • const string PATH_STYLESHEET = @"C:\style.css";
  • // Chemin du répertoire de génération
  • const string PATH_TARGET_FOLDER = @"C:\Genere\";
// NE PAS OUBLIER DE DEFINIR CES TROIS CHEMIN DANS LA METHODE MAIN

// Chemin vers le template html et la feuille de style
const string PATH_TEMPLATE = "C:\ClassTemplate.htm";
const string PATH_STYLESHEET = @"C:\style.css";
            
// Chemin du répertoire de génération
const string PATH_TARGET_FOLDER = @"C:\Genere\";

Conclusion

Je n'ai plus le temps de continuer pour l'instant, donc cette version est à améliorer.

Au pire une partie du code pourra vous servir pour autre chose (ce qui est déja bien) !
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

08 novembre 2007 18:25:52 :
J'ai oublié de citer Junfeng Zhang :D

Commentaires et avis

signaler à un administrateur
Commentaire de Bidou le 08/11/2007 19:00:24 administrateur CS

Y'a des path rentrés en dur la dedans, pas le pied pour tester :)

signaler à un administrateur
Commentaire de thiosyiasar le 08/11/2007 19:13:10

:D <----- Dsl Bidou...

Regarde le petit encadré nommé Source... ou alors il y en a d'autre ?
Bon sinon ,
Dans le namespace winapp, il y 2 fichiers (classTemplate.htm et style.css). Ceux sont les deux premiers chemins a définir.
Le troisième c'est le répertoire de génération, mettez n'importe quel chemin, le répertoire sera créé si il n'existe pas.

A+


Vala

signaler à un administrateur
Commentaire de surfzoid le 08/11/2007 19:36:12

C'est vraix que c'est dommage, car du coup tu n'as pas penser a linux ou d'autre plateforme, en général, j'utilise environmen.newline et getpathseparator pour palier a cela, c'est une question d'habitude lol.
Bon juste pour le fun, avec mono comme tu voit il y a un pb de path separator :

Unhandled Exception: System.IO.FileNotFoundException: Could not find file "/home/eric/tmp/docgen/docgen.winapp/bin/Debug/D:\DEV\OUTILS\docgen\docgen.winapp\ClassTemplate.htm".
File name: '/home/eric/tmp/docgen/docgen.winapp/bin/Debug/D:\DEV\OUTILS\docgen\docgen.winapp\ClassTemplate.htm'
  at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean anonymous, FileOptions options) [0x00203] in /root/tmp/mono-latest/mono-20071106/mcs/class/corlib/System.IO/FileStream.cs:268
  at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share) [0x00000] in /root/tmp/mono-latest/mono-20071106/mcs/class/corlib/System.IO/FileStream.cs:135
  at (wrapper remoting-invoke-with-check) System.IO.FileStream:.ctor (string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare)
  at System.IO.File.OpenRead (System.String path) [0x00000] in /root/tmp/mono-latest/mono-20071106/mcs/class/corlib/System.IO/File.cs:384
  at System.IO.StreamReader..ctor (System.String path, System.Text.Encoding encoding, Boolean detect_encoding_from_bytemarks, Int32 buffer_size) [0x00077] in /root/tmp/mono-latest/mono-20071106/mcs/class/corlib/System.IO/StreamReader.cs:167
  at System.IO.StreamReader..ctor (System.String path) [0x00000] in /root/tmp/mono-latest/mono-20071106/mcs/class/corlib/System.IO/StreamReader.cs:143
  at (wrapper remoting-invoke-with-check) System.IO.StreamReader:.ctor (string)
  at fr.neopen.generators.templates.FileTemplate.LoadFile (System.String filePath) [0x00000] in /home/eric/tmp/docgen/fr.neopen.generators.templates/TemplateFile.cs:101
  at docgen.winapp.Program.Main () [0x00048] in /home/eric/tmp/docgen/docgen.winapp/Program.cs:48

signaler à un administrateur
Commentaire de surfzoid le 08/11/2007 19:40:55

En fait cela vas même plus loin car tu as ecraser ton environment avec le chemein absolu, la aussi en general j'utilise l'équivalent C# du code vb My.Application.Info.DirectoryPath

signaler à un administrateur
Commentaire de Bidou le 08/11/2007 20:07:04 administrateur CS

Ha mince :-)
Je testerai ce week-end donc si j'ai le temps. Et je tâcherai de passer la source un peu moins en diagonale la prochaine fois :D

signaler à un administrateur
Commentaire de surfzoid le 08/11/2007 20:13:18

En fait, maitre capelo la reponse est :
mettre la feuille de style a coté de l'exe et dans le code remplaceé les lignes avec D: .. par :

//Chemin racine d'ou est lancer l'exe, fonctionne aussi avec un directoryinfo(Application.ExecutablePath
string DirApp =  Application.StartupPath + System.IO.Path.DirectorySeparatorChar;

            // Chemin vers le template html et la feuille de style

string PATH_TEMPLATE = DirApp + "ClassTemplate.htm";

            string PATH_STYLESHEET = DirApp+ "style.css";

            

            // Chemin du répertoire de génération

            string PATH_TARGET_FOLDER = DirApp + "_Test_DOC_GEN";

signaler à un administrateur
Commentaire de surfzoid le 08/11/2007 20:14:04

Et normaly comme ça cela marche a tout les coup lol :D

signaler à un administrateur
Commentaire de thiosyiasar le 08/11/2007 20:45:09

C'est un projet en cours, j'ai pas trop le temps alors j'ai juste fait en sorte que ca tourne. $
Je compte m'y remettre car j'en aurais besoin d'ici quelques temps. (Une vrai appli Winform qui marche et tout...)

Pour l'instant, faut plus le voir comme une resource. Des p'tits libs pour des projets plus finis.


A+

signaler à un administrateur
Commentaire de surfzoid le 08/11/2007 20:55:42

oki, mais garde mon bou de code sous le coude cela fonctionne aussi bien comme ça mais on voit plus "large" lol

signaler à un administrateur
Commentaire de coq le 10/11/2007 23:10:16 administrateur CS

Sinon la méthode Path.Combine est sympa aussi hein ;-)

signaler à un administrateur
Commentaire de surfzoid le 11/11/2007 13:39:30

conait pas dsl, faudrait que j'y jette un oeil, bon évidament aprés je le récupére, lol :D

signaler à un administrateur
Commentaire de thiosyiasar le 11/11/2007 15:25:37

oui l'avantage avec path combine c'est qu'il gère lui meme le séparateur de dossier

Path.Combine("c:\", "toto") --> "c:\toto"
Path.Combine("c:", "toto") --> "c:\toto"

Oui je met ton code de coté ;)

A+

signaler à un administrateur
Commentaire de thiosyiasar le 11/11/2007 15:28:41

oops j'y pense pour lunix justement ya une autre chemin en dur ! :D (celui du framework, je corrige ca rapidos)

en fait un tit fichier de config +fera l'affaire je crois !

signaler à un administrateur
Commentaire de coq le 11/11/2007 15:44:22 administrateur CS

La méthode RuntimeEnvironment.GetRuntimeDirectory devrait t'intéresser alors.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

[C#] Template et ArrayList [ par scoubidou944 ] Ayant un objet de type cToto, je voudrais créer une liste de ces objets.ArrayList est un bon moyen mais est-il possible de spécifier directement qu'il Reflection [ par MorpionMx ] Bonsoir a tous Voila, j'ai une dll qui impl&#233;mente plusieurs m&#233;thodes static qui effectuent un traitement sur une image pass&#233;e en param System.Reflection? [ par Olympe18 ] Bonjour,Je suis encore un d&#233;butant en C# et je fais face &#224; un petit probl&#232;me. La solution est sans doute simple, mais pour l'instant, j Type, string et reflection [ par bigflo93 ] &nbsp;Salut &#224; tous :)Je suis en pleine reflection en ce moment :) et je cherche &#224; instancier une classe &#224; partir d'une string.Enfin, pl Reflection DLL [ par RM50Man ] Voila le code ou j utilise la reflection pour appeler une m&#233;thode static dans ma DLL Assembly asm = Assembly.LoadFrom("PremiereDLL.dll"); Type[] DLL reflection [ par RM50Man ] Pour utiliser une dll est ce qu on est toujours d utiliser la reflection!!!!RM50man XML [ par dibouched ] Bonjour , je viens de commencer&nbsp; &#224; utiliser les document XML avec c#pour lire le continu d'un document XML j'ai utlise XmlDoc =new XmlDocume Solution [ par Solution ] Bonjour,pour ceux qui sont int&#233;ress&#233; par la manipulation de fichier xml voici un bou de code pour l'affichage de contenu d'un balise sp&#233 Controler les données d'un fichier Xml [C#] [ASP.NET] [ par orangeman ] Salut, j'ai une application qui re&#231;oit un fichier Xml et lorsque je le parse je veux controler qu'un des &#233;lement est un num&#233;ro de t&#23 Reflection, structure et type de base [ par bigflo93 ] Salut &#224; tous :) Voil&#224;, dans mon programme j'utilise la r&#233;flection. J'ai besoin de diff&#233;rencier les "ValueType" et type r&#233;fer


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version


LG KP501

Entre 9€ et 159€


Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,702 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.