第三步:代码生成引擎
自动代码生成方案很多,这里为了配置模板方便,就使用了最常见的XML+XSLT模板方式。
核心代码如下:
public static bool TransferXml(XmlDocument xmlDoc, string XslPath, string TargetFileName)
{
XslCompiledTransform xslTran = new XslCompiledTransform();
XmlTextWriter xw = null;
try
{
xw = new XmlTextWriter(TargetFileName, Encoding.UTF8);
xslTran.Load(XslPath);
xslTran.Transform(xmlDoc, xw);
return true;
}
catch
{
return false;
}
finally
{
if (xw != null)
{
xw.Flush();
xw.Close();
}
}
}
public static string TransferXmlToString(XmlDocument XmlDoc, string XsltPath)
{
//获取Model类模板
string ResultStr = "";
MemoryStream ms = null;
StreamReader sr = null;
try
{
XslCompiledTransform XTran = new XslCompiledTransform();
XTran.Load(XsltPath);
ms = new System.IO.MemoryStream();
XPathNavigator nav = XmlDoc.CreateNavigator();
XTran.Transform(nav, null, ms);
ms.Position = 0;
sr = new StreamReader(ms);
ResultStr = sr.ReadToEnd();
ResultStr = ResultStr.Replace("<?xml version=/"1.0/" encoding=/"utf-8/"?>", "");
return ResultStr;
}
catch
{
return "";
}
finally
{
if (sr != null)
{
sr.Close();
sr.Dispose();
}
if (ms != null)
{
ms.Dispose();
}
}
}
好了,现在为止,代码生成工具就基本完成了。
本文来自CSDN博客,转载请标明出处:G:/[C#]一步一步开发自己的自动代码生成工具之三:代码生成引擎 - lemong的专栏 - CSDN博客.mht