Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,870 questions

51,793 answers

573 users

How to execute (run) code that is in a string with C#

2 Answers

0 votes
using Microsoft.CSharp;
using System;
using System.CodeDom.Compiler;
using System.Reflection;
using System.Text;

namespace ConsoleApplication_C_Sharp
{
    class Program
    {
        static void Main(string[] args)
        {
            string code = @"using System;

                            namespace C_Sharp_In_String
                            {
                                public class Code
                                {
                                    public static void Main()
                                    {"
                                        + "Console.WriteLine(\"c# programming\");" + @"
                                    }
                                }
                            }";

            CSharpCodeProvider codeprovider = new CSharpCodeProvider();
            CompilerParameters parameters = new CompilerParameters();

            parameters.GenerateInMemory = true; // false - generate in external file
            parameters.GenerateExecutable = true; // false - generate in dll

            CompilerResults cresults = codeprovider.CompileAssemblyFromSource(parameters, code);

            if (cresults.Errors.HasErrors)
            {
                string s = "";

                foreach (CompilerError error in cresults.Errors)
                {
                    s = String.Format("\nError ({0}): {1}\n", error.ErrorNumber,error.ErrorText);
                }
                throw new InvalidOperationException(s);
            }
            Assembly assembly = cresults.CompiledAssembly;
            Type program = assembly.GetType("C_Sharp_In_String.Code");
            MethodInfo method = program.GetMethod("Main");

            method.Invoke(null, null);
        }
        
    }
}


/*
run:
     
c# programming

*/

 



answered Dec 24, 2016 by avibootz
0 votes
using Microsoft.CSharp;
using System;
using System.CodeDom.Compiler;
using System.Reflection;

namespace ConsoleApplication_C_Sharp
{
    class Program
    {
        static void Main(string[] args)
        {
            string code = @"using System.Diagnostics;

                            namespace C_Sharp_In_String
                            {
                                public class Code
                                {
                                    public static void Main()
                                    {"
                                        + "Process.Start(\"calc.exe\");" + @"
                                    }
                                }
                            }";

            CSharpCodeProvider codeprovider = new CSharpCodeProvider();
            CompilerParameters parameters = new CompilerParameters();

            parameters.ReferencedAssemblies.Add("System.dll");
            parameters.GenerateInMemory = true; // false - generate in external file
            parameters.GenerateExecutable = true; // false - generate in dll

            CompilerResults cresults = codeprovider.CompileAssemblyFromSource(parameters, code);

            if (cresults.Errors.HasErrors)
            {
                string s = "";

                foreach (CompilerError error in cresults.Errors)
                {
                    s = String.Format("\nError ({0}): {1}\n", error.ErrorNumber,error.ErrorText);
                }
                throw new InvalidOperationException(s);
            }
            Assembly assembly = cresults.CompiledAssembly;
            Type program = assembly.GetType("C_Sharp_In_String.Code");
            MethodInfo method = program.GetMethod("Main");

            method.Invoke(null, null);
        }
        
    }
}


/*
run:
     

*/

 



answered Dec 24, 2016 by avibootz

Related questions

...