roslyn生成html,通过Roslyn将字符串生成可以执行的C#代码
几年前有研究过这个类似的东西,实现Javascript里的Eval函数
新发现Roslyn更加好用,以后可以做点好玩的东西了,
研究了一下,记录下来简单的demo
Nuget添加引用Microsoft.CodeAnalysis.CSharp
或者用Package Manager Console命令Install-Package Microsoft.CodeAnalysis.CSharp
测试代码如下var text = @"
public class Calculator
{
public static int Evaluate() { return 3 2 * 55; }
}";
var tree = SyntaxFactory.ParseSyntaxTree(text);
var compilation = CSharpCompilation.Create("calc.dll", new[] { tree },
options: new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary),
//references: new[] { new MetadataFileReference(typeof(object).Assembly.Location) });
references: new[] { MetadataReference.CreateFromFile(typeof(object).Assembly.Location) });
Assembly compiledAssembly;
using (var stream = new MemoryStream())
{
var compileResult = compilation.Emit(stream);
compiledAssembly = Assembly.Load(stream.GetBuffer());
}
var calculatorClass = compiledAssembly.GetType("Calculator");
var evaluateMethod = calculatorClass.GetMethod("Evaluate");
var result = evaluateMethod.Invoke(null, null).ToString();
Console.WriteLine(result);
注意注释部分,这个地方已经有所改变,跟网上存在的方式不太一样了。
roslyn生成html,通过Roslyn将字符串生成可以执行的C#代码相关推荐
- json 生成html转换,根据json字符串生成Html的一种方式
文章说明: 本文介绍了根据Json串生成Html的一种方式(只是简单实现了文本框,密码框,下拉框).只是觉得好玩才这样做,如果觉得没有任何价值,请忽略.不足指出希望各位大牛指点.后续将根据各位的指点继 ...
- java读取字符串,生成txt文件
/*** 读取字符串,生成txt 文件 已解决未设置编码时,在项目中直接打开文件,中文乱码问题* WriteText.writeToText(musicInfo,fileName)直接调用* * @a ...
- 【Groovy】json 序列化 ( JsonBuilder 生成器 | 生成带根节点名称的 json 字符串 | 生成不带根节点名称的 json 字符串 )
文章目录 一.json 生成器 二.代码示例 一.json 生成器 首先 , 创建 json 生成器 . // json 生成器 def jsonBuilder = new JsonBuilder() ...
- 将Python字符串生成PDF
笔者在今天的工作中,遇到了一个需求,那就是如何将Python字符串生成PDF.比如,需要把Python字符串'这是测试文件'生成为PDF, 该PDF中含有文字'这是测试文件'. 经过一番检索,笔者决定 ...
- Freemarker基于模板字符串生成静态化html文件
基于字符串生成静态化文件,就不会通过模板文件.ftl了,也就是项目中压根就不存在模板文件,就是通过用户输入或在配置文件中定义一些模板字符串,基于这些字符串来生成静态化文件. 将字符串转换成模板:
- 微信小程序业务-字符串生成二维码(weapp-qrcode)
微信小程序业务-字符串生成二维码(weapp-qrcode) 前言 邂逅weapp-qrcode 基本使用 详细参数 小程序组件中使用 image属性详解 想使用网络图片? 参考地址 前言 在小程序项 ...
- 生成html_听说你不会用Python将字符串生成PDF?来,我教你!
这是恋习Python推荐的第118篇好文 来源:Python爬虫与算法 作者:jclian 笔者在今天的工作中,遇到了一个需求,那就是如何将Python字符串生成PDF.比如,需要把Python字 ...
- php 根据数量创建数组,php实现根据字符串生成对应数组的方法
本文实例讲述了php实现根据字符串生成对应数组的方法,是比较实用的技巧.分享给大家供大家参考.具体方法如下: 先看看如下示例: $config = array( 'project|page|index ...
- MySQL 生成指定长度的随机字符串
2019独角兽企业重金招聘Python工程师标准>>> 1.生成指定长度英文字符串的函数 DELIMITER $$ create function rand_string (n in ...
- C语言利用二叉树的操作实现根据给定的字符串生成二叉树并前序、中序、后序输出二叉树。
C语言利用二叉树的操作实现根据给定的字符串生成二叉树并前序.中序.后序输出二叉树. Description 根据给定的字符串生成二叉树并前序.中序.后序此二叉树. Input 给定一字符串,其中#表示 ...
最新文章
- UNITY 多个子MESH与贴图的对应关系
- 有重叠与无重叠序列之序列检测与序列产生
- Cervical Cancer mechanism
- golang int 转string_Golang的逃逸分析
- Windows 技术篇-桌面图标全部消失问题解决方法,windows资源管理器重启实例演示
- 获取本机IP地址[JavaScript / Node.js]
- Golang二进制转换十进制代码
- 【Flink】Flink 的 slotSharingGroup 有什么用
- git 无法提交空目录
- 数据库:mysql内置功能-函数
- cad画流程图的插件_如何用cad画交互流程图
- 9个数中取最大值最小值速度问题
- Android开发之高德地图导航
- 合天网络靶场-大规模网络环境仿真服务平台
- 如何挑选微信第三方开发商
- Apple Watch使用指南:所有Apple Watch图标和符号含义
- DEVC++第五人格V2.0
- gitbook 使用粘自csdn
- 最新前端开发面试笔试题及答案---图片(面试题系列持续更新中)(8)
- maven仓库中查找依赖的步骤