如何动态评估 C# 代码?

2023-12-06

我可以做一个eval("something()");在 JavaScript 中动态执行代码。有没有办法让我在 C# 中做同样的事情?

我想做的一个例子是:我有一个整数变量(比如说i)并且我有多个属性,名称为:“Property1”、“Property2”、“Property3”等。 现在,我想对“属性”执行一些操作i“财产取决于价值i.

这对于 Javascript 来说非常简单。有没有办法用 C# 来做到这一点?


使用 Roslyn 脚本 API。更多样品在罗尔辛维基中.

// add NuGet package 'Microsoft.CodeAnalysis.Scripting'
using Microsoft.CodeAnalysis.CSharp.Scripting;

await CSharpScript.EvaluateAsync("System.Math.Pow(2, 4)") // returns 16

您还可以运行任何代码:

var script = await CSharpScript.RunAsync(@"
                class MyClass
                { 
                    public void Print() => System.Console.WriteLine(1);
                }")

并引用之前运行中生成的代码:

await script.ContinueWithAsync("new MyClass().Print();");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何动态评估 C# 代码? 的相关文章

  • c和java语言中的换行符

    现在行分隔符取决于系统 但在 C 程序中我使用 n 作为行分隔符 无论我在 Windows 还是 Linux 中运行它都可以正常工作 为什么 在java中 我们必须使用 n 因为它与系统相关 那么为什么我们在c中使用 n 作为新行 而不管我
  • 使用 Unity 在构造函数中使用属性依赖注入

    好的 我在基类中定义了一个依赖属性 我尝试在其派生类的构造函数内部使用它 但这不起作用 该属性显示为 null Unity 在使用 container Resolve 解析实例后解析依赖属性 我的另一种选择是将 IUnityContaine
  • 如何读取扩展文件属性/文件元数据

    因此 我按照教程使用 ASP net core 将文件 上传 到本地路径 这是代码 public IActionResult About IList
  • std::cout 和 std::wcout 有什么区别?

    在c 中 有什么区别std cout and std wcout 它们都控制流缓冲区的输出或将内容打印到控制台 或者它们只是相似吗 它们作用于不同的字符类型 std cout uses char作为字符类型 std wcout uses w
  • 向 Nhibernate 发出 SQL 查询

    如何将此 SQL 查询发送给 Nhibernate SELECT Customer name FROM Company INNER JOIN Customer ON Company CompanyId Customer CompanyId
  • 在 Unity 进程和另一个 C# 进程之间进行本地 IPC 的最快方法 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我希望每秒大约 30 次从 C 应用程序向我的 Unity 应用程序传送大量数据 由于 Unity 不支持映射内存和管道 我考虑了 t
  • 存储来自其他程序的事件

    我想将其他应用程序的事件存储在我自己的应用程序中 事件示例 打开 最小化 Word 或打开文件时 这样的事可能吗 运行程序 http msdn microsoft com en us library ms813609 aspx and 打开
  • 生成(非常)大的非重复整数序列而不进行预洗牌

    背景 我编写了一个简单的媒体客户端 服务器 我想生成一个不明显的时间值 随从客户端到服务器的每个命令一起发送 时间戳中将包含相当多的数据 纳秒分辨率 即使它不是真正准确 因为现代操作系统中计时器采样的限制 等 我想做的 在 Linux 上
  • 无法在 Windows 运行时组件库的 UserControl 中创建依赖项属性

    我想在用户控件内创建数据可绑定属性 这个用户控件包含一个 Windows 运行时组件 项目 我使用下面的代码来创建属性 public MyItem CurrentItem get return MyItem GetValue Current
  • 如何在 C# 中定义文本框数组?

    您好 当我在 Windows 申请表上创建文本框时 我无法将其命名为 box 0 box 1 等 我这样做的目的是因为我想循环使用它们 其实我发现TextBox array firstTextBox secondTextBox 也有效
  • 未经许可更改内存值

    我有一个二维数组 当我第一次打印数组的数据时 日期打印正确 但其他时候 array last i 的数据从 i 0 到 last 1 显然是一个逻辑错误 但我不明白原因 因为我复制并粘贴了 for 语句 那么 C 更改数据吗 I use g
  • 如何将自定义 JSON 文件添加到 IConfiguration 中?

    我正在使用 asp net Autofac 我正在尝试加载自定义 JSON 配置文件 并基于该文件创建 实例化 IConfiguration 实例 或者至少将我的文件包含到默认情况下构建的 IConfiguration asp net 中
  • 如何编写一个同时需要请求和响应Dtos的ServiceStack插件

    我需要提供本地化数据服务 所有本地化的响应 Dto 都共享相同的属性 IE 我定义了一个接口 ILocalizedDto 来标记那些 Dto 在请求端 有一个ILocalizedRequest对于需要本地化的请求 Using IPlugin
  • 等待线程完成

    private void button1 Click object sender EventArgs e for int i 0 i lt 15 i Thread nova new Thread Method nova Start list
  • 如何从main方法调用业务对象类?

    我已将代码分为业务对象 访问层 如下所示 void Main Business object public class ExpenseBO public void MakeExpense ExpensePayload payload var
  • (de)从 CSV 序列化为对象(或者最好是类型对象的列表)

    我是一名 C 程序员 试图学习 C 似乎有一些内置的对象序列化 但我在这里有点不知所措 我被要求将测试数据从 CSV 文件加载到对象集合中 CSV 比 xml 更受青睐 因为它更简单且更易于人类阅读 我们正在创建测试数据来运行单元测试 该集
  • 为什么在setsid()之前fork()

    Why fork before setsid 守护进程 基本上 如果我想将一个进程与其控制终端分离并使其成为进程组领导者 我使用setsid 之前没有分叉就这样做是行不通的 Why 首先 setsid 将使您的进程成为进程组的领导者 但它也
  • Server.MapPath - 给定的物理路径,预期的虚拟路径

    我正在使用这行代码 var files Directory GetFiles Server MapPath E ftproot sales 在文件夹中查找文件 但是我收到错误消息说 给定物理路径但虚拟路径 预期的 我对在 C 中使用 Sys
  • 编译时“strlen()”有效吗?

    有时需要将字符串的长度与常量进行比较 例如 if line length gt 2 Do something 但我试图避免在代码中使用 魔法 常量 通常我使用这样的代码 if line length gt strlen Do somethi
  • 英特尔 Pin 与 C++14

    问题 我有一些关于在 C 14 或其他 C 版本中使用英特尔 Pin 的问题 使用较新版本从较旧的 C 编译代码很少会出现任何问题 但由于 Intel Pin 是操作指令级别的 如果我使用 C 11 或 C 14 编译它 是否会出现任何不良

随机推荐

  • jQuery 隐藏/显示并在悬停时滑动...更好的方法吗?

    基本上在使用悬停来隐藏或显示项目时遇到一些问题 想法很简单 悬停时显示一个 div 当不再悬停时 将其隐藏 问题是 如果鼠标悬停在 div 上并离开得太快 则显示 隐藏 div 将保持可见 我希望这是很容易解决的问题 而不是悬停事件的典型问
  • CUDA 9 shfl 与 shfl_sync

    自 CUDA 9 起 shfl 指令已弃用 应由 shfl sync 替换 但是 当它们表现不同时 我应该如何替换它们呢 代码示例 global static void shflTest int tid threadIdx x float
  • Chrome 和媒体查询错误

    我正在尝试制作一个基本上由一些垂直放置的幻灯片组成的网站 我一直希望做出响应式设计 以便我的 幻灯片 在更大的屏幕尺寸上适当调整大小 或者以奇怪的尺寸适当填充 这是我设置适当尺寸的 LESS 文件 html body width 100 h
  • 使用 Graph API 更新 M365 Group 的敏感度标签,PowerShell 抛出 401 错误

    UGH 当我尝试使用 Graph API 和 PowerShell 更新 M365 组敏感度标签信息时 我遇到了 401 错误 使用 Graph Explorer 野兽工作得很好 但使用 PowerShell 我收到一个错误Invoke R
  • 使用 Gluon 在 APK META-INF/INDEX.LIST 中复制的重复文件

    我正在 javafx 上的 netbeans 中使用最新的 gluon 版本开发代码 当我在笔记本电脑中运行它时 程序没有问题 但是当我尝试在 android 中运行时 我实现了这个消息 com android builder packag
  • 如何获取xml文件中每个节点的完整路径?

    我正在使用 xpath 遍历 xml 文件 我想知道是否有一种简单的方法来获取文件中每个节点的路径 我能想到的一种方法是收集数组中的所有节点 然后将其传递到一个函数 该函数将每个节点作为参数 并不断寻找父节点 直到到达文档根 所以 func
  • 如何使用状态访问器获取 Bot Framework 中的属性

    我的机器人的功能之一是处理购物车 用户可以在对话中的任何位置添加商品 然后完成购物以关闭产品购物车 为了避免将购物车从一个对话框传递到另一个对话框 我想创建一个UserProfile财产在UserState The UserProfile财
  • 如何将 Express 中的数据呈现为 HTML 表格?

    我有一个简单的server js应用 一种路由是 api showaccounts 路由 其范围是从 MongoDB 获取一系列帐户 包含用户名 余额和名称字段 app post api showaccounts async req res
  • 这个内核函数可以更具可读性吗? (学术研究所需的想法!)

    按照我之前的问题关于极长函数背后的基本原理 我想提出一个关于一段代码我正在为我的研究而学习 它是 Linux 内核中的一个函数 相当长 412 行 且复杂 一个中冶指数共 133 条 基本上 这是一个长而嵌套的 switch 语句 坦白说
  • 快速异步加载tableView图像

    我的代码从网络下载图像并将它们设置为 tableView 单元格 imageView 它工作正常 只是我需要点击一个单元格来刷新单元格的内容并加载图像 我希望图像在加载后立即出现 我尝试在 cellToUpdate 下添加 reloadDa
  • Windows 文件的服务器端病毒扫描

    我需要通过我的 ASP NET Web 应用程序扫描 Windows 服务器上上传的文件 但是 我不知道防病毒软件包是否附带 api 之类的东西 我可以使用它以编程方式触发扫描 如果可能的话 我真的希望避免任何类型的窗口调度来触发防病毒软件
  • 同时访问0x14572f2a0,但修改需要独占访问

    我正在遵循 Swift 5 中的设计模式 一书中的示例代码 该示例适用于状态模式部分 我收到内存访问错误 同时访问 0x14572f2a0 但修改需要独占访问 当我尝试运行代码时 我不知道发生了什么事 提前致谢 Code import Fo
  • Soap WSDL ComplexType 被发布为错误的参数类型

    我有一个服务器 SoapUI 应答 WSDL 请求 发送测试请求时 我的服务器代码正在接收list的争论 但我试图实现的是single论证 的复杂型 eg ingredient id gt INT something gt STRING 我
  • 在 VB6 中设置线程文化

    是否有与以下 C 代码等效的 VB6 Thread CurrentThread CurrentCulture new CultureInfo en US 使用Windows API函数SetThreadLocale instead
  • Angular 8.2.14 与 PrimeNG 8.0.0,应用程序未在 IE11 中加载

    我最近从 Angular 7 升级到 Angular 8 2 14 PrimeNG 版本升级到 8 0 0 并且该应用程序可以在除 Internet Explorer 之外的所有浏览器中运行 下面是我的 package json 文件 de
  • EF Code First - 如何设置身份种子?

    我有一个实体类 public class Employee public long Id get set public string Name get set 我已将 Id 字段设置为主键并自动生成编号 modelBuilder Entit
  • 聊天轮盘的架构

    有人可以向我解释一下聊天轮盘背后的架构吗 我正在考虑一个类似的项目 只实现音频 支持 对于初学者 设置闪存服务器的最佳方法是吗 如果是这样 我应该如何进入闪存 我需要 Flex 4 吗 我 有一些 c c 和 java 的初学者经验 但我从
  • 在Java中将mp3转换为wav

    我安装了 mp3spi 以支持使用 javax sound 库读取 Java 8 项目中的 mp3 文件 我现在的目标是将 mp3 写入 wav 文件 然而 结果是不正确的 这是最简单格式的代码 public static void mp3
  • PHP 中修剪 unicode 空格

    我怎样才能修剪string 6 page 其中第一个空格是 0xc2a0 不间断空格 我试过了trim and preg match s s u key m 另一个问题 如何可靠地复制这些字符 它们似乎被转换为 正常 空间 这使得调试变得困
  • 如何动态评估 C# 代码?

    我可以做一个eval something 在 JavaScript 中动态执行代码 有没有办法让我在 C 中做同样的事情 我想做的一个例子是 我有一个整数变量 比如说i 并且我有多个属性 名称为 Property1 Property2 Pr