您的位置:首页 > 其它

微软CodeDom模型学习笔记(四)

2009-12-28 00:05 274 查看
4, GenerateCodeFromNamespace方法
CodeNamespace ret = new CodeNamespace();
ret.Name = "MyNameSpace";
codeProvider.GenerateCodeFromMember(ret, tw, options);
输出的代码字符串为:
namespace MyNameSpace
{

}
加入注释
CodeNamespace ret = new CodeNamespace();
ret.Name = "MyNameSpace";
ret.Comments.Add(new CodeCommentStatement("这是一个命名空间!"));
codeProvider.GenerateCodeFromMember(ret, tw, options);
输出的代码字符串为:
// 这是一个命名空间!
namespace MyNameSpace
{

}
导入命名空间
CodeNamespace ret = new CodeNamespace();
ret.Name = "MyNameSpace";
CodeNamespaceImport import=new CodeNamespaceImport("System");
ret.Imports.Add(import);
codeProvider.GenerateCodeFromMember(ret, tw, options);
输出的代码字符串为:
namespace MyNameSpace
{
using System;

}
在该命名空间下定义类信息
CodeNamespace ret = new CodeNamespace();
ret.Name = "MyNameSpace";
CodeTypeDeclaration type1 = new CodeTypeDeclaration("MyType1");
ret.Types.Add(type1);
CodeTypeDeclaration type2 = new CodeTypeDeclaration("MyType2");
ret.Types.Add(type2);
codeProvider.GenerateCodeFromMember(ret, tw, options);
输出的代码字符串为:
namespace MyNameSpace
{

public class MyType1
{
}

public class MyType2
{
}
}
还有3个事件,可以通过这3个事件事先与前面一个属性设置相同的功能
事件1 PopulateTypes
增加一个函数
static void ret_PopulateTypes(object sender, EventArgs e)
{
CodeNamespace ret = sender as CodeNamespace;
CodeTypeDeclaration type1 = new CodeTypeDeclaration("MyType1");
ret.Types.Add(type1);
CodeTypeDeclaration type2 = new CodeTypeDeclaration("MyType2");
ret.Types.Add(type2);
}
CodeNamespace ret = new CodeNamespace();
ret.Name = "MyNameSpace";
ret.PopulateTypes += new EventHandler(ret_PopulateTypes);
codeProvider.GenerateCodeFromMember(ret, tw, options);
输出的代码字符串为:
namespace MyNameSpace
{

public class MyType1
{
}

public class MyType2
{
}
}
事件2 PopulateImports
增加一个函数
static void ret_PopulateImports(object sender, EventArgs e)
{
CodeNamespace ret = sender as CodeNamespace;
ret.Imports.Add(new CodeNamespaceImport("System"));
}
CodeNamespace ret = new CodeNamespace();
ret.Name = "MyNameSpace";
ret.PopulateImports += new EventHandler(ret_PopulateImports);
codeProvider.GenerateCodeFromMember(ret, tw, options);
输出的代码字符串为:
namespace MyNameSpace
{
using System;

}
事件3
增加一个函数
static void ret_PopulateComments(object sender, EventArgs e)
{
CodeNamespace ret = sender as CodeNamespace;
ret.Comments.Add(new CodeCommentStatement("这是一行注释!"));
}
CodeNamespace ret = new CodeNamespace();
ret.Name = "MyNameSpace";
ret.PopulateComments += new EventHandler(ret_PopulateComments);
codeProvider.GenerateCodeFromMember(ret, tw, options);
输出的代码字符串为:
// 这是一行注释!
namespace MyNameSpace
{

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: