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 / Exemple :
// 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) !
8 nov. 2007 à 19:00
8 nov. 2007 à 19:13
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
8 nov. 2007 à 19:36
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
8 nov. 2007 à 19:40
8 nov. 2007 à 20:07
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
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.