原创  [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();

                }

            }

}

 

好了,现在为止,代码生成工具就基本完成了。

 

 

发表于 @ 2008年07月15日 17:45:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:[C#]一步一步开发自己的自动代码生成工具之二:SQLServer字段与C#变量的对应转化 | 新一篇:[C#]一步一步开发自己的自动代码生成工具之四:简单三层代码模板实例Model层

  • 发表评论
  • 评论内容:
  •  
Copyright © lemong
Powered by CSDN Blog