使用Roslyn动态编译和执行

1. 安装nuget package

2.使用Roslyn 动态执行

var engine = newRoslyn.Scripting.CSharp.ScriptEngine();
           engine.CreateSession().Execute
               ("System.Console.WriteLine(\"Hello , Roslyn .\");");

3.使用Roslyn 动态编译

var engine = newRoslyn.Scripting.CSharp.ScriptEngine();
           var list = new List<string> {"abc", "bcd","acd"};
           var excutable = engine.CreateSession().
               CompileSubmission<Func<string,bool>>
                ("(m) =>{returnm.StartsWith(\"a\");}").Execute();

           var startWitha = list.
                Where(excutable);

           foreach (var str in startWitha)
           {
                Console.WriteLine(str);
            }
时间: 2024-11-10 23:00:16

使用Roslyn动态编译和执行的相关文章

C#动态编译并执行代码

先来张运行时截图: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Microsoft.CSharp; using System.CodeDom.Compiler; u

如何用C#动态编译、执行代码

原文:如何用C#动态编译.执行代码 在开始之前,先熟悉几个类及部分属性.方法:CSharpCodeProvider.ICodeCompiler.CompilerParameters.CompilerResults.Assembly. 一.CSharpCodeProvider 提供对C#代码生成器和代码编译器的实例的访问.如果要动态生成VB代码,可以使用VBCodeProvider. CreateCompiler():获取编译器的实例. 二.ICodeCompiler 定义用于调用源代码编译的接口

让C#语言充当自身脚本!——.NET中的动态编译

原文:让C#语言充当自身脚本!--.NET中的动态编译 代码的动态编译并执行是.NET平台提供给我们的很强大的一个工具,用以灵活扩展(当然是面对内部开发人员)复杂而无法估算的逻辑,并通过一些额外的代码来扩展我们已有 的应用程序.这在很大程度上给我们提供了另外一种扩展的方式(当然这并不能算是严格意义上的扩展,但至少为我们提供了一种思路). 动态代码执行可以应用在诸如模板生成,外加逻辑扩展等一些场合.一个简单的例子,为了网站那的响应速度,HTML静态页面往往是我们最好的选择,但基于数据驱动的网站往往

java内存动态编译执行

1.package org.jui.core.dynamic; public class DynaCompTest { public static void main(String[] args) throws Exception { String fullName = "DynaClass"; StringBuilder src = new StringBuilder(); src.append("public class DynaClass {\n"); src

c# 执行js 动态编译

using System; using System.CodeDom.Compiler; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; namespace webpro { public class JScripta { private static readonly CodeDomProv

C#执行js动态编译的方法

本文实例讲述了C#执行js动态编译的方法.分享给大家供大家参考.具体实现方法如下: 代码如下: using System; using System.CodeDom.Compiler; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; namespace webpro { public clas

程序动态编译代码

c#可以在程序运行过程中动态的编译代码,并生成程序集加载在内存,然后就可以动态的调用代码生成的程序了,这有点像我们的vs编译器,感兴趣的可以制作属于自己的c#编译器: 要实现这种功能,我们只需要调用CSharpCodeProvider就可以实现了: string prefix = "using System;"+ "public static class Test{"+ "public static void Run(){"; string po

浅谈VB.Net 程序的编译和动态编译

---恢复内容开始--- 一般,我们都是通过Visual Studio(下面简称vs)来编写和编译vb.net应用程序的,但是,不少的人并不知道vs是通过何种方式编译程序的.今天,我们就来探讨一下编译vb.net程序的真正原理. 这篇随笔包含如下几个部分: 1.VS是怎么编译的 2.通过vbc.exe来编译应用程序 3.在代码中通过VBCodeProvider动态编译应用程序 ok,首先来说说vs编译应用程序的方法.其实,vs是通过调用vbc.exe来编译vbnet应用程序的.vs把用户编写的代

动态编译添加php模块

注意:转载请注明出处:http://www.programfish.com/blog/?p=85 在很多时候我们用linux里搭建web服务器的时候会需要编译安装php套件,而在编译安装后可能又会需要添加一些编译安装时没有指定要编译进去的模块,例如如下情况: mysql.so 或mysqli.so .mbstring.so  zlib.so 等模块. 这里提示一下: 如果你有安装过phpmyadmin而且在安装配置好之后打开首页是空白的,那么很有可能就是你的php没有mysql和mbstring