Динамическая компиляция C# строки и файла .csC#

Место общения программистов C#
Ответить
Anonymous
 Динамическая компиляция C# строки и файла .cs

Сообщение Anonymous »

Я работаю над веб-сайтом, на котором пользователь может реализовать решение проблемы на коде C# в текстовой области браузера и отправить его. Затем сервер скомпилирует этот код вместе с предопределенным интерфейсом, который я предоставляю на сервере. Думайте об этом как о шаблоне разработки стратегии; Я предоставляю интерфейс стратегии, а пользователи его реализуют. Поэтому мне нужно скомпилировать строку и предопределенный файл *.cs вместе во время выполнения. Вот код, который у меня есть сейчас, который компилирует только строковую часть:

Код: Выделить всё

CodeDomProvider codeProvider = CodeDomProvider.CreateProvider("CSharp");

CompilerParameters parameters = new CompilerParameters();
parameters.OutputAssembly = "CodeOutputTest.dll";   // need to name this dynamically.  where to store it?
parameters.GenerateExecutable = false;
parameters.IncludeDebugInformation = false;

CompilerResults results = codeProvider.CompileAssemblyFromSource(parameters, request.Code);
Пользователи будут отправлять что-то вроде этого:

Код: Выделить всё

public class UserClass : IStrategy
{
public string ExecuteSolution(string input)
{
// user code
}
}
Не говоря уже о проблемах безопасности (это сложный вопрос для другого дня)... как мне скомпилировать это вместе с моим предопределенным файлом интерфейса *.cs? Или есть лучший способ справиться с этим?

Подробнее здесь: https://stackoverflow.com/questions/672 ... nd-cs-file
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»