大学IT网 - 最懂大学生的IT学习网站! QQ资料交流群:367606806
当前位置:大学IT网 > C#技巧 > C#一步一步开发自己的自动代码生成工具之三:代码生成引擎

C#一步一步开发自己的自动代码生成工具之三:代码生成引擎

关键词:自动代码生成工具C#  阅读(851) 赞(43)

[摘要]本文主要介绍如何C#一步一步开发自己的自动代码生成工具之三:代码生成引擎,与大家分享学习。

第三步:代码生成引擎

自动代码生成方案很多,这里为了配置模板方便,就使用了最常见的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();  
  
                }  
  
            }  
  
}
好了,现在为止,代码生成工具就基本完成了。



相关评论