网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > C# > 正文
.Net的CodeDOM技术实现语言无关的Code Wizard
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/14
下载{$ArticleTitle}原创论文样式
OM时,必须先建立一个CodeCompileUnit类的对象,然后在这个对象中加入必要的namespace、class等面向对象元素。

用于生成和编译源代码的类。这个类必须从CodeDomProvider类继承。每种.net framework

所支持的语言都有自己的CodeDomProvider类。如在C#中的CodeDomProvider类叫CSharpCodeProvider,而在VB.net中叫VBCodeProvider。



四、数据表类的定义

要用CodeDOM定义一个类需要三步:

1. 建立一个CodeCompileUnit对象。这个类相当于一个源码文件。

2. 建立一个CodeNamespace对象。理论上在.net framework上运行的程序语言,如C#、VB.net

等,可以没有namespace。但在CodeDOM中必须使用这个类,如果不想要namespace,可以将namespace的名字设为 null或空串。

建立一个CodeTypeDeclaration对象。这个类可以建立Class和Interface两种Type。在

这个例子中只建立Class。如果想建立Interface,只需将IsInterface属性设为true即可。

主要的实现代码如下:

    private CodeCompileUnit m_CodeCompileUnit;
    private CodeNamespace m_CodeNameSpace;
    private CodeTypeDeclaration m_Class;
    private void InitCodeDom()
    {
        m_CodeCompileUnit = new CodeCompileUnit();
        m_CodeNameSpace = new CodeNamespace("xml.tables"); 
        m_CodeCompileUnit.Namespaces.Add(m_CodeNameSpace);
        m_Class = new CodeTypeDeclaration(m_ClassName);
        m_CodeNameSpace.Types.Add(m_Class);
}

其中namespace的名子是“xml.tables”。在建立完namespace后,将其加入到m_CodeCompileUnit的Namespaces集合中。m_ClassName是一个String变量,它的值就是数据表的表名。最后将所建立的类加入到namespace的Types集合中。在产生完类后。需要在这个类中加入四部分内容,它们分别是:全局变量、属性、构造函数和方法(Add和Save方法)。下面就分别讨论它们的实现过程。

五、全局变量的生成

这个数据表类中有四种全局变量:用于操作xml文件的类型为XmlDocument的变量、用于保存数据表文件名的变量、用于确定是否为加入状态的Boolean型变量、以及用于保存每个字段值的变量组。具体实现代码如下:

private void GenerateFields()
{
    // 产生 "private XmlDocument m_xml = new XmlDocument();"  
    CodeMemberField xml = new CodeMemberField("System.Xml.XmlDocument", "m_xml");
    CodeObjectCreateExpression createxml = new CodeObjectCreateExpression("System.Xml.XmlDocument");
    xml.InitExpression = createxml;
    m_Class.Members.Add(xml);
    // 产生 "private String m_XmlFile;"  
    CodeMemberField xmlfile = new CodeMemberField("System.String", "m_XmlFile");
 &nbs
  • 上一篇资讯: matlab与C# 矩阵转换
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号