技术开发 频道

VS集成之代码生成机制实现强类型编程

  三、设置注册表

  到目前为止,我们定义的代码生成器MessageCodeGenerator已经通过COM组件的形式暴露出来了,我们需要作的就是让VS能够正常地加载该COM组件,这通过设置VS相关的注册表信息来完成。VS2010与代码生成相关的注册表项定义在HKLM\Software\Microsoft\VisualStudio\10.0\Generators\节点下。该节点下的子节点(Key)均通过相应的GUID表示,不同的GUID实际上表示的是相应的编程语言。其中{164B10B9-B200-11D0-8C61-00A0C91E29D5}代表VB.NET,而C#对应的GUID为下图选中的{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}。

设置注册表
 

  现在我们需要在表示C#的节点下创建一个Key,并起名为MessageCodeGenerator,即我们约定的代码生成器的名称。

设置注册表
 

  如上图所示,我们需要对我们添加的注册表键进行如下三项设置:

  (Default)[REG_SZ]:设置代码生成器的表述性信息;

  CLSID[REG_SZ]:作为COM组件的代码生成器的GUID,即我们在定义MessageCodeGenerator类新通过GuidAttribute特性指定的GUID,注意不要忘了花括号;

  GeneratesDesignTimeSource[REG_WWORD]: 0或者1,表明是否提供设计时原代码生成的支持

  四、通过Custom Tool直接通过XML生成C#代码

  现在我们就可以来直接使用我们我们的MessageCodeGenerator了。现在我们创建一个项目,添加一个用于保存消息的XML文件,比如起名为Messages.xml,内容如下:

<?xml version="1.0" encoding="utf-8" ?>  
<messages>  
  
<message id="MandatoryField" value="The {0} is mandatory."  category="Validation"/>  
  
<message id="GreaterThan" value="The {0} must be greater than {1}."  category="Validation"/>  
  
<message id="ReallyDelete" value="Do you really want to delete the {0}."  category="Confirmation"/>  
</messages>

 

  然后右击该XML文件,在弹出的上下文菜单中选择Properties选项。你会发现在属性对话框中有个叫作Custom Tool的属性名称,在该项上填写上我们的代码生成器的名称:MessageCodeGenerator。

设置注册表
 

0
相关文章