如何监控程序代码执行? (通过代码行创建和修改文件等)

时间:2010-05-17 15:28:31

标签: c# .net

我的程序是关于触发XSL转换,

事实上,这个用于执行转换的代码会创建一些dll和tmp文件,并在转换完成后很快删除它们。

我手动监视文件的创建和删除几乎无法追踪,所以我想在控制台窗口中包含一些代码行来显示“哪个代码行创建/修改了哪些tmp和dll文件”。

这是代码的相关部分:

            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"
谷歌和msdn搜索对我帮助不大..

2 个答案:

答案 0 :(得分:1)

临时DLL将作为XSLCompiledTransform对象的一部分创建:XSLT文档在运行时编译为MSIL,生成的程序集用于执行实际转换。如果你真的想要在DLL出现/消失的时候准确计算出来,你可以在调试器中逐行遍历代码并观察Temp目录。

为什么你关心临时文件呢?它们只是XSL转换代码的一个实现细节,与您的代码无关。

答案 1 :(得分:0)