[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("", "");



                return ResultStr;

            }

            catch

            {

                return "";

            }

            finally

            {

                if (sr != null)

                {

                    sr.Close();

                    sr.Dispose();

                }

                if (ms != null)

                {

                    ms.Dispose();

                }

            }

}

 

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

 

 

你可能感兴趣的:(代码开发)