我的程序是关于触发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搜索对我帮助不大..
答案 0 :(得分:1)
临时DLL将作为XSLCompiledTransform对象的一部分创建:XSLT文档在运行时编译为MSIL,生成的程序集用于执行实际转换。如果你真的想要在DLL出现/消失的时候准确计算出来,你可以在调试器中逐行遍历代码并观察Temp目录。
为什么你关心临时文件呢?它们只是XSL转换代码的一个实现细节,与您的代码无关。
答案 1 :(得分:0)