问题标签 [dynamic-language-runtime]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - MetaObject 构造函数中限制参数的用途?
我目前在我的 DLR 语言实现中遇到一个问题,在该语言中定义的方法的后续调用使用与该方法的第一次调用相同的输入参数发生。
所以......如果我用我的语言这样做:
...输出是:
整数
整数
我期望的地方:
整数
十进制
我怀疑(但还不能确认)问题是由以下原因引起的:
我的调用绑定器(InvokeAction 子类)生成一个适当的调用表达式,然后返回一个带有该表达式和 Restrictions.Empty 的新 MetaObject
因此,我认为可能发生的情况是 Restrictions 参数通知 DLR 何时可以将此构造重新用于对该方法的后续调用,并且由于我没有设置固有限制,因此始终重新使用第一个构造(抱歉,我这里的术语可能是错误的......希望你明白)
所以......我在想我需要使用为每个参数生成的限制的合并......按类型,或者按实例。
有人可以证实或否认我的想法吗?对于我所看到的行为,我应该探索任何其他可能性吗?
蒂亚...
log4net - 从 IronPython 调用 .NET 代码,加载 log4net 程序集时出错
我有一个配置 log4net 的 IronPython 脚本,然后调用使用 log4net 的 .NET 代码。log4net 已正确配置,因为我记录了一条消息以指示它已初始化。但是当我尝试使用我的 .NET 类时,它会报告“无法加载文件或程序集 'log4net, ...'。
一些有用的事实:
- log4net 未安装到 GAC
- .NET 类是正确的,我从其他 .NET 代码中调用了它
- 在 IPY 中加载的 log4net 程序集与我的 .NET 程序集位于同一文件夹中。
- filemon 显示所有 log4net.dll 访问都已从预期位置成功解析
- fuslogvw 不报告任何绑定错误
- 我正在使用 AddReferenceToFileAndPath( ) 添加 log4net 引用和 .NET 程序集引用
奇怪的是 log4net 程序集已经被加载了。它必须在另一个 AppDomain 中加载 .NET 程序集。如果这就是它的工作原理,那么了解它会很有帮助。
有什么想法吗?谢谢。
.net - Expression.Dynamic 和 Operators.Assign?
我正在尝试使用 Expression.Dynamic() 来构建赋值操作...我想使用它来选择性地为我的语言中的某些自定义类型实例提供值类型语义。我不能用“静态”(?)表达式来做到这一点,因为我不知道实际类型是什么(我需要 MetaObject 实例及其 LimitType ...因此是 Expression.Dynamic() )。
这对我不起作用...如果用于从我的 OperationBinder 子类构建 MetaObject,Expression.Assign() 什么也不做。
头。怦怦直跳。上。桌子。为了。小时。
只是想知道这是否是受支持的行为,或者我是否在吠叫错误的树?
谢谢...
scripting - 实时脚本语言 + MS DLR?
首先,我应该让你们知道我想要做什么。我正在处理的项目有一个需要构建自定义脚本系统的要求。这将由使用该应用程序的非程序员使用,并且应该尽可能接近自然语言。一个例子是,如果用户需要运行自定义模拟并绘制输出,他们编写的代码需要看起来像
变量 input1 为 10;变量 input2 为 20;
变量 value1 是 AVERAGE(input1, input2);
变量条件1为真;如果条件 1 则 PLOT(value1);
可能没有多大意义,但它只是一个例子。AVERAGE 和 PLOT 是我们想要定义的函数,它们不应该被允许改变它们,甚至不应该看到它们是如何工作的。DLR 可以实现这样的事情吗?如果不是,我们还有什么其他选择(从 ANTRL 开始定义语法,然后继续?)?将来这可能也需要使用 XBAP 和 WPF 运行,所以这也是我们需要考虑的问题,但在 dlr 和 xbap 上还没有看到太多。谢谢,希望这一切都有意义。
Lua 不是一种选择,因为它与他们已经习惯的不同。
Ralf,它是被动的,老实说,结果应该返回给用户的时间范围可能是 1/100 秒,一直到 2 周或一个月(非常复杂的数学函数)。
基本上,他们已经购买了一个系统,可以满足他们的一些需求,并包含一种自定义脚本语言,可以完成我上面提到的功能,他们不想学习新的,他们基本上只是希望我们复制它并添加功能。我想我会从 ANTRL 开始,然后从那里开始。
.net - DLR 是如何工作的?
.Net 4 将具有 DLR(动态语言运行时)。我知道它将用于 Iron Python 和 Iron Ruby 之类的东西。但这就是它的全部好处吗?
DLR 有什么用处?
DLR 是如何工作的?
linq - 打印出 Linq 表达式树层次结构
动态语言运行时 (DLR)有一些非常酷的 表达式代码,包括一些非常好的代码来打印我想要使用的表达式树,以便:
输出:
我在网上找到了一些代码来执行此操作,但发现它仅在表达式不带参数时才有效。
然后我发现了类似方法的 DLR 实现。然而,DLR 有自己的 Expression 类和许多其他标准 C# 类型的自定义实现,所以我有点困惑。任何人都知道我可以如何实现上述?
.net - 在托管环境中查询接口的 IronPython 脚本
我正在开发一个用 C# 编写的应用程序,它承载 IronPython。我的计划是用户将编写 python 脚本,其中包含实现预定义接口的类。
就像是:
在 C# 代码中定义接口:
在 python 代码中实现接口。
在我的应用程序中,我加载 python 脚本并执行这些脚本中的类实现的方法。
我想知道:如何获取在 python 脚本中实现指定接口的所有类的句柄?
例如:如果我要在 C# 中做所有事情,我有反射来帮助我,我可以直接加载程序集并执行以下操作:
当我处理 IronPython 脚本而不是程序集时,我该怎么做?我知道使用 ObjectOperations 和 ScriptScope,如果我知道它的名称(如此处所述),我可以获得该类的句柄,但我正在寻找更强大的东西。
python - 计算价格的业务规则
我工作的企业是一家在线零售商,我目前正在从事一个项目,其中包括计算产品的客户价格。我们可能会创建一个看起来像...的服务
不用担心它看起来不会完全一样,但是您会明白总体思路。在我们实施这项服务的过程中,将有许多计算这个价格的规则,这些规则可以经常改变,我们可能想要做的是为这些规则创建某种 DSL。目前,虽然我们不太确定销售部门等实际会要求进行哪些更改,所以我正在考虑托管 DLR 并拥有一个包含大量价格计算的 Iron Python 或 Iron Ruby 脚本文件。通过这种方式,我们可以快速更新价格计算规则,也可以了解业务人员需要什么类型的 DSL。
asp.net - 在哪里可以下载 DLR 的托管 JScript?
动态语言运行时的最新版本(0.9 稳定版)包含 IronPython 和 IronRuby,但不包含托管 JScript。
有谁知道我可以在哪里下载最新版本的托管 JScript 以用于 ASP.NET 和/或 WPF?
如果您不知道,JScript.NET 和托管 JScript 是完全不同的东西。我正在寻找的是托管 JScript。
.net - IronPython - JSON 选择
在 IronPython 2.0.1 中处理 JSON 的最佳方法是什么。本机 Python“标准库”json 似乎尚未实现。
如果我想使用 Newtonsoft Json.NET 库,我该怎么做?我可以将程序集添加到 GAC,但我的其他选择是什么?