とタイプに空白を追加することができます私は、私は、これは組み立て空間を追加したいcode.Now私は、文字列からこの方法でアセンブリを取得しています。このが、私はコード
Assembly BuildAssembly(string code)
{
List<string> SKParams = new List<string>();
string Caption = @"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client\";
SKParams.Add(Caption + "System" + ".dll");
SKParams.Add(Caption + "System.Windows.Forms" + ".dll");
SKParams.Add(Caption + "System.Data" + ".dll");
SKParams.Add(Caption + "System.Core" + ".dll");
SKParams.Add(Caption + "System.Drawing" + ".dll");
SKParams.Add(Caption + "System.Drawing" + ".dll");
SKParams.Add(@"D:\SK\Projelerim\ZxProject\MySDK\MySDK\bin\Debug\MySDK.dll");
SKParams.Add(Caption + "System.XML" + ".dll");
Microsoft.CSharp.CSharpCodeProvider provider = new CSharpCodeProvider();
ICodeCompiler compiler = provider.CreateCompiler();
CompilerParameters compilerparams = new CompilerParameters(SKParams.ToArray());
compilerparams.GenerateExecutable = false;
compilerparams.GenerateInMemory = true;
CompilerResults results = compiler.CompileAssemblyFromSource(compilerparams, code);
if (results.Errors.HasErrors)
{
StringBuilder errors = new StringBuilder("Compiler Errors :\r\n");
foreach (CompilerError error in results.Errors)
{
errors.AppendFormat("Line {0},{1}\t: {2}\n",
error.Line, error.Column, error.ErrorText);
MessageBox.Show(error.ErrorText);
}
throw new Exception(errors.ToString());
}
else
{
return results.CompiledAssembly;
}
}
気に入りまし形でコンパイラコードを持っており、アセンブリとソースコード(文字列コード)を変更するにはどうしたらいいですか?
あなたがしようとしていることは(少なくとも私には)あまり明確ではありません。クラスを定義する文字列(コード)を渡すメソッドを持つアセンブリを作成した後、そのクラスにvoidメソッド(元のコードではない)を追加したいということですか? –
exectlyはいMr.Baruchelli – YardimaIhtiyaciOlan