2010-05-17 9 views
0

Mon programme est sur le déclenchement de la transformation XSL,comment surveiller l'exécution du code de programme? (création de fichier et modification par lignes de code etc)

Son fait que ce code pour effectuer la transformation, crée des fichiers dll et tmp et les supprime assez rapidement après la transformation est terminé. Il est presque impossible pour moi de surveiller la création et la suppression des fichiers manuellement, donc je veux inclure un morceau de codelines pour afficher "quelle ligne de code a créé/modifié quels fichiers tmp et dll" dans la fenêtre de la console.

Ceci est la partie pertinente du code:

  string strXmlQueryTransformPath = @"input.xsl"; 
      string strXmlOutput = string.Empty; 
      StringReader srXmlInput = null; 
      StringWriter swXmlOutput = null; 
      XslCompiledTransform xslTransform = null; 
      XPathDocument xpathXmlOrig = null; 
      XsltSettings xslSettings = null; 

      MemoryStream objMemoryStream = null; 
      objMemoryStream = new MemoryStream(); 

      xslTransform = new XslCompiledTransform(false); 
      xpathXmlOrig = new XPathDocument("input.xml"); 

      xslSettings = new XsltSettings(); 
      xslSettings.EnableScript = true; 
      xslTransform.Load(strXmlQueryTransformPath, xslSettings, new XmlUrlResolver()); 

      xslTransform.Transform(xpathXmlOrig, null, objMemoryStream); 
      objMemoryStream.Position = 0; 
      StreamReader objStreamReader = new StreamReader(objMemoryStream); 
      strXmlOutput = objStreamReader.ReadToEnd(); 
// make use of Data in string "strXmlOutput" 

google et recherche msdn ne pouvaient pas me aider beaucoup ..

+0

Cela aiderait à la lisibilité d'un _lot_ pour a) supprimer les commentaires inutiles/code commenté b) fusionner la déclaration et les affectations. Je ne vois aucune référence aux fichiers temporaires ou aux DLL dans cet extrait, donc je suppose que je ne comprends pas la question. Vous voulez enregistrer des messages simples sur la console: log4net peut facilement le faire et est très populaire en tant que framework de journalisation. –

+0

Il ne fait pas référence explicitement .. mais il crée des fichiers avec l'extension tmp et dll, dans "C: \ Windows \ temp" ou "C: \ Document et paramètres \ utilisateur \ LocalSettings \ temp" .. lorsque je boucle cette code fois infini .. alors je peux observer les fichiers dll se créer et supprimés. (comme ce processus est plus rapide, il est impossible de comprendre la même chose si je n'exécute qu'une seule fois). Chaque fois que les noms de fichiers auront des noms aléatoires différents .. –

Répondre

1

Les DLL temporaires seront créés dans le cadre de l'objet XslCompiledTransform: la Le document XSLT est compilé à l'exécution dans MSIL et l'assembly généré est utilisé pour effectuer la transformation réelle. Si vous voulez vraiment savoir exactement quand la DLL apparaît/disparaît, vous pouvez simplement parcourir le code, ligne par ligne, dans un débogueur et regarder le répertoire Temp. Mais pourquoi vous souciez-vous des fichiers temporaires?

Ils sont juste un détail d'implémentation du code de transformation XSL qui ne devrait pas avoir d'importance pour votre code.

+0

J'ai essayé le débogage plusieurs fois. garder le dossier temporaire ouvert et être observé. mais je ne peux pas le voir créer, je ne sais pas la raison. Cette création de fichiers temporaires est un peu occasionnel aussi .. Je suppose. –

+0

bien. sur le serveur où ce code est déployé souffre d'un bug. Les fichiers sont créés mais ils sont supprimés aussi, donc le programme soulève une erreur en disant "fichier dll est manquant" (tooo bizarre ..) .. Donc comme une solution temporaire de ce problème, j'ai trouvé un travail autour. Je dois juste voir s'il y a la possibilité de charger l'erreur par moi-même, si oui, alors laissez-moi créer le fichier temporaire encore et déclencher la transformation. (avec succès), –