第三步:代码生成引擎
自动代码生成方案很多,这里为了配置模板方便,就使用了最常见的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();
}
}
}
好了,现在为止,代码生成工具就基本完成了。
发表于 @ 2008年07月15日 17:45:00 | 评论( loading... ) | 举报| 收藏