博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过代码生成机制实现强类型编程-CodeSimth版
阅读量:6809 次
发布时间:2019-06-26

本文共 1104 字,大约阅读时间需要 3 分钟。

  一直想写一个Code生成系列,但写到CodeSimth,发觉在 和 两位大牛的博客里讲很详尽,所以就像写些示例方面的,但是苦于没有想到写些什么。最近写了两篇,大牛写得是CodeDom的,今天我就想借借大牛的示例写个CodeSimth版的,希望不要怪我,呵呵。我的Code生成技术已经写了CodeDom的见,欢迎各位园友指教。

        好直接到主题。首先是数据实体MessageEntry(我到老A的基础上添加了description属性作为代码字段描述):

 

代码

 

 

在我的机子上的COdeSimth是2..0版本的所以不能使用Linq命名空间,我又想利用这个空间,比较快捷,所以我就在先3.0转化为

Dictionary<string, List<MessageEntry>>实体再传入模板:

Code:

 

代码

 

 

这下几可开始写模板了,见下Code:

 

代码

 

 

很简单,就不说了,如果有问题请留言,其中命名空间完全可以以属性方式传入。

XMl实体用的是老A的:

 

ExpandedBlockStart.gif
代码
1 
<?
xml version="1.0" encoding="utf-8" 
?>
  
2 
<
messages
>
   
3 
<
message 
id
="MandatoryField"
 value
="The {0} is mandatory."
  category
="Validation"
  description
="description"
 
/>
   
4 
<
message 
id
="GreaterThan"
 value
="The {0} must be greater than {1}."
  category
="Validation"
 description
="description"
 
/>
   
5 
<
message 
id
="ReallyDelete"
 value
="Do you really want to delete the {0}."
  category
="Confirmation"
 description
="description"
 
/>
  
6 
</
messages
>
7 
8 

 

 

我想脱离CodeSimth工具,所以在建立了一个控制台程序,引用CodeSmith.Engine.dll程序集。

Code:

 

代码

 

 

生成后的代码:

 

代码

 

 

ok,全部完成。同时你也可以完全集成与VS中利用VSX Vs扩展,可以参考

本文转自破狼博客园博客,原文链接:http://www.cnblogs.com/whitewolf/archive/2010/09/25/CodeSimthNamedCMessage.html,如需转载请自行联系原作者
你可能感兴趣的文章
Memory for crash kernel (0x0 to 0x0) notwithin permissible range
查看>>
wifi×××破解的密码查看方式
查看>>
Spring MVC 全局异常处理(1) --HandlerExceptionResolver
查看>>
难忘的一课
查看>>
如何恢复丢失的分区及文件
查看>>
重磅丨三年沉淀 2018全球人工智能技术大会蓄势待发
查看>>
【智能家居v1.0项目】C#实现scoket通信
查看>>
我的友情链接
查看>>
强制卸载域控制器
查看>>
codeigniter_MY_Model
查看>>
php实现事件监听与触发的方法
查看>>
我的友情链接
查看>>
我把Ubuntu 10.10放进了自己的口袋
查看>>
Leetcode 好题
查看>>
Mysql数据库性能优化
查看>>
java-第十一章-类的无参方法-模拟ATM机进行账户余额查询
查看>>
linux 系统tty、pty和pts 的概念及区别
查看>>
centos 6.5 找回root密码的方法
查看>>
Nginx PageSpeed模块配置和使用
查看>>
mysql Load Data InFile 的用法
查看>>