我要做一个毕业设计申请这个应用程序将以某种方式接收对情况的描述,然后相应地生成c#代码
我想知道我需要在哪个字段中搜索,或者如何自动生成C#代码
发布于 2010-09-20 22:24:53
如果可以的话,可以在上面看看Kathleen Dollard's book。她也有一个关于这个话题的website。
基本上,您有三种选择:
Brute force-在文本文件中自己创建代码文件
CodeDOM generation -MS是以创建代码的方式构建的。
XSLT - Kathleen使用的。
发布于 2010-09-20 22:31:00
T4模板也可以提供帮助-
http://www.hanselman.com/blog/T4TextTemplateTransformationToolkitCodeGenerationBestKeptVisualStudioSecret.aspx
您还可以在运行时生成IL。;)
发布于 2010-09-20 22:48:41
CodeDOM
我对codedom做了一个包装。您只需要创建自己的C#脚本并指定要使用的类型。
示例
public interface IWorld
{
string Hello(string value);
}
string code = @"namespace MyNamespace
{
class Temp : IWorld
{
public string Hello(string value)
{
return "World " + value;
}
}
}";
Compiler compiler = new Compiler();
compiler.AddType(typeof(string));
compiler.Compile(code);
var obj = compiler.CreateInstance<IWorld>();
string result = obj.Hello("World!");请注意,这是很久以前我写的。这个例子可能不能100%工作。( Compiler类确实可以工作,但示例可能会错误地使用它)。
编译器源代码:http://fadd.codeplex.com/SourceControl/changeset/view/65227#925984
Reflection.Emit
您还可以使用Reflection.Emit:http://msdn.microsoft.com/en-us/library/3y322t50.aspx生成IL
这有点难,但更灵活,因为CodeDOM会为你编译的每一种代码生成一个新的程序集。
https://stackoverflow.com/questions/3752336
复制相似问题