代码生成器工具之三

第三步:代码生成引擎

自动代码生成方案很多,这里为了配置模板方便,就使用了最常见的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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值