在【CodeSmith快速入门之一:初次接触CodeSmith】中,我们实现了最简单的模板,但是模板中的内容无法由用户的输入决定。

假定你女朋友要你在新年的时候说10次“I LOVE YOU”,而在情节人那天要你说1000次“I LOVE YOU FOR EVER”,这可怎么办呢?
我们经过分析,其实就是次数和说的内容不确定。

那么我们马上着手开始实现吧。

1、新建C#模板,去掉原始内容并保存取名为“Love.cst”
(操作同【CodeSmith快速入门之一:初次接触CodeSmith】一致)

2、添加模板声明

@ CodeTemplate Language="C#" ResponseEncoding="UTF-8" Description="爱情表达"%>

3、为了可以接收外部传进来的“次数”和“内容”,定义两个输入参数

@ CodeTemplate Language="C#" ResponseEncoding="UTF-8" Description="爱情表达"%>@ Property Name="Content" Type="String" Default="" Optional="False" Category="Context" Description="要讲的话" %>@ Property Name="Count" Type="Int32" Default="10" Optional="true" Category="Context" Description="讲的次数" %>

Property的属性:--Name:名称
--Type:数据类型
--Category:属性分类名称
--Default:默认值
--Description:描述
--Optional:是否允许为空(true或者false)
注意:两个参数的名称分别为:Content和Count,我们可以像使用变量一样使用

4、为了重用,在模板中定义一个方法

<script runat="template">
    public void Say()
    {for(int i=0; i<Count; i++)
        {
            Response.WriteLine(Content);
        }
    }script>

调用script方法_自己撸一个代码生成器输入参数和方法相关推荐

  1. spring boot 自动跳转登录页面_徒手撸一个扫码登录示例工程

    徒手撸一个扫码登录示例工程 不知道是不是微信的原因,现在出现扫码登录的场景越来越多了,作为一个有追求.有理想新四好码农,当然得紧跟时代的潮流,得徒手撸一个以儆效尤 本篇示例工程,主要用到以下技术栈 q ...

  2. Java直接杀死线程方法_如何杀死一个线程?

    1.简介 在这篇短文中,我们将讲述一下java中如果结束一个线程-事实上,这并没有想象中的那么简单,因为 Thread.stop()方法已经被废弃啦. 根据Oracle的解释,stop()方法可以导致 ...

  3. 其中一个页签慢_渭南提升一个大专学历的有效方法

    渭南提升一个大专学历的有效方法,宏德教育,目前已形成以高等学历教育为特色王牌,职称考评.企业内训为辅助的强力优势品牌. 渭南提升一个大专学历的有效方法, 获得发明专利或实用新型专利,且已实施取得效益. ...

  4. javascript实现图片轮播_手撸一个简易版轮播图(上)

    手撸一个简易版轮播图 实现原理,通过控制 swiper-warpper 容器的定位来达到切换图片的效果. 页面布局 简易版轮播图 < > 页面样式 .container{width: 60 ...

  5. python调用子类函数_如何从一个子类调用函数到另一个子类

    有很多方法可以实现这一点. 这里有一个:class Acct: def __init__(self, deposit): self.balance = deposit # Try to avoid s ...

  6. java list sublist方法_(转)Java 中 List.subList() 方法的使用陷阱

    原文:http://blog.csdn.net/cleverGump/article/details/51105235 前言 本文原先发表在我的 iteye博客: http://clevergump. ...

  7. python3中format方法_[翻译]python3中新的字符串格式化方法-----f-string

    从python3.6开始,引入了新的字符串格式化方式,f-字符串. 这使得格式化字符串变得可读性更高,更简洁,更不容易出现错误而且速度也更快. 在本文后面,会详细介绍f-字符串的用法. 在此之前,让我 ...

  8. java中的invoke方法_详解Java中Method的Invoke方法

    在写代码的时候,发现从父类class通过getDeclaredMethod获取的Method可以调用子类的对象,而子类改写了这个方法,从子类class通过getDeclaredMethod也能获取到M ...

  9. ajax请求成功和失败方法_创新需要反馈和失败的新方法

    ajax请求成功和失败方法 今天,"组织文化"令人不解,有充分的理由. 越来越多的领导者意识到,渗透并指导其组织的文化将决定他们是成功还是失败. 术语"组织文化" ...

最新文章

  1. 到底选择PostgreSOL还是MySQL?看这里!
  2. 杨兴平离职完全是意料之中
  3. Java 中的反射机制
  4. HOG可视化 opencv
  5. ASP.net Joyrock异步应用示例、JSON-RPC使用方法
  6. Qt 项目视图的便捷类
  7. 正确的工作流程:我应该使用哪个OAuth 2.0流程?
  8. Memcached 内存管理(一)
  9. 如何创建一个标准的Windows服务
  10. python 卷积神经网络 应用_卷积神经网络在目标定位中的应用
  11. 《软件项目管理》课程知识总结
  12. matlab 画三维图像
  13. 日期转换和日历的使用方法
  14. 网络服务器带宽Mbps、Mb/s、MB/s有什么区别?10M、100M到底是什么概念?
  15. Matlab学习3-图像处理之镜像、错切、透视
  16. USB3.0:VL817Q7-C0的LAYOUT指南
  17. 在eclipse上使用Maven创建简单项目
  18. 机器视觉成像中的光偏振技术
  19. C# HTTP GET/POST单线程请求、Json反序列化解析对接数据
  20. 09高温假旅行——青烟蓬长大

热门文章

  1. 作为候选人,你需要问些什么?你需要查些什么?这些关乎你的利益和未来!
  2. ISLR_ANOVA
  3. Nature Communications∣开花过程中,拟南芥茎尖分生组织基因表达和组蛋白标记的时空动态
  4. 三代测序关键计算技术开发及应用
  5. 如何吧家庭网络从计算机去掉,【求助】Windows无法从该家庭组中删除你的计算机...
  6. 解决 Windows10 和 Ubuntu18.04.4 双系统 时间同步不一致问题
  7. Ubuntu创建opencv工程并显示一张图片
  8. Codewars Vasya - Clerk--6 kyu--Python解法
  9. ASP .NET Core Web MVC系列教程:使用ASP .NET Core创建MVC Web应用程序
  10. 安装llvmlite报错解决:RuntimeError: llvm-config failed executing, please point LLVM_CONFIG to the path for