Надо запустить на исполнение строку.

  • Автор темы Your_Princess
  • Дата начала
Статус
Закрыто для дальнейших ответов.
Y

Your_Princess

У меня есть строка, которая представляет собой код программы. Её надо скомпилить и запустить, чтобы она выдала там какой-нибудь результат или что-то в этом роде.

я пишу так:

Код:
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.CSharp;
using System.CodeDom.Compiler;

namespace CodeProviderTemp
{
class Program
{
static void Main(string[] args)
{



CSharpCodeProvider provider = new CSharpCodeProvider();
bool compileOk = false;



if (provider != null)
{

// Format the executable file name.
// Build the output assembly path using the current directory
// and <source>_cs.exe or <source>_vb.exe.


CompilerParameters cp = new CompilerParameters();

// Generate an executable instead of 
// a class library.
cp.GenerateExecutable = false;


cp.GenerateInMemory = true;

// Set whether to treat all warnings as errors.
cp.TreatWarningsAsErrors = false;


string source = @"using System;


public class Class1
{

public static string Render()
{
return ""My name is Ira\"";
}
}";


// Invoke compilation of the source file.
CompilerResults cr = provider.CreateCompiler().CompileAssemblyFromSource(cp, 
source);

if(cr.Errors.Count > 0)
{
// Display compilation errors.
Console.WriteLine("Errors building {0} ", 
"text" );
foreach(CompilerError ce in cr.Errors)
{
Console.WriteLine(" {0}", ce.ToString());
Console.WriteLine();
}
}
else
{
// Display a successful compilation message.
Console.WriteLine("Source {0} built successfully.",
"text ");
}

// Return the results of the compilation.
Console.ReadKey();
}


}
}
}

а но выдаёт ошибку CS1010 Newline in constant
И не понятно что я делаю не так :(
 
P

Pasha

Для: Your_Princess
Или убери @ в обявлении source и экранируй кавычки, или убери \ после слова Ira.
 
Y

Your_Princess

Спасибо, всё работает. Ну я и дурёна!
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!