我已经为codeDOM编译器创建了一个表单,它可以编译我的代码,如果它在一个文本文件中,但我希望能够编译文本文件中的源代码和文本文件中的类,以便它们可以一起工作。
我不确定如何编写codeDOM来将我的类文件添加为要编译的主要源的资源
到目前为止我所拥有的是什么
codeDOM编译器
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.CodeDom.Compiler;
using Microsoft.CSharp;
namespace CodeDOMSourceTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void btnCompile_Click(object sender, EventArgs e)
{
CompilerParameters Params = new CompilerParameters();
Params.GenerateExecutable = true;
Params.ReferencedAssemblies.Add("System.dll");
Params.ReferencedAssemblies.Add("TextFile1.txt");
Params.OutputAssembly = "output.exe";
string Source = Properties.Resources.CodeDOMSource;
Source = Source.Replace("[TEXT]", txtReplace.Text);
CompilerResults Results = new CSharpCodeProvider().CompileAssemblyFromSource(Params, Source);
if (Results.Errors.Count > 0)
{
foreach (CompilerError err in Results.Errors)
Console.WriteLine(err.ToString());
}
else Console.WriteLine("Compiled just fine!");
}
}
}
源文件
namespace testingCodeDOM
{
class Program
{
static void Main()
{
System.Console.WriteLine("[TEXT]");
Console.WriteLine(Testing.textwork());
System.Console.Read();
}
}
}
ClassFile的
namespace testingCodeDOM
{
class Testing
{
public static string textwork()
{
string hello = "calss worked";
return hello;
}enter code here
}
}
任何想法如何做到这一点,因为我已经谷歌搜索了我没有或至少没有我理解
在一边不是这个只与源一起工作,但我试图改编它以使用类文件以及
答案 0 :(得分:0)
The CompileAssemblyFromSource()
method可以使用任意数量的源代码字符串(因为它是params
方法)。所以,你可以这样称呼:
CompileAssemblyFromSource(Params, Source, ClassFile)
其中ClassFile
是string
,其中包含第二个文件的文本。