Доброго дня !
Я добавляю в проект динамическую компиляцию кода, который часто меняется. Могу ли я передать в строку-конструктор переменные типа array, byte и как это можно реализовать ?
using System;
using System.CodeDom.Compiler;
using System.IO;
using Microsoft.CodeAnalysis.CSharp.Scripting;
using Microsoft.CodeAnalysis.Scripting;
using Microsoft.CSharp;
using Westwind.Scripting;
namespace Simple
{
class PreSimple
{
static void Main()
{
string code = File.ReadAllText(@"MyCompil.cs");
//Console.Write(code);
CSharpCodeProvider codeProvider = new CSharpCodeProvider();
ICodeCompiler icc = codeProvider.CreateCompiler();
string Output = "Out.exe";
System.CodeDom.Compiler.CompilerParameters parameters = new CompilerParameters();
parameters.GenerateExecutable = true;
parameters.OutputAssembly = Output;
CompilerResults results = icc.CompileAssemblyFromSource(parameters, code);
}
}
}
Файл для компиляции MyCompil.cs
using System;
namespace MyCompil
{
class MyCompilClass
{
static void Main(string[] args)
{
Console.WriteLine("hello");
Console.ReadLine();
}
}
}
Это работает. Но что если вместо "hello" я хочу передать свое значение. Могу ли я это сделать для этого решения и если да, какие типы смогу передать ? если это по сути строка вида :
string code = @"using System;
namespace MyCompil
{
class MyCompilClass
{
static void Main(string[] args)
{
Console.WriteLine("hello");
Console.ReadLine();
}
}
}"