问题标签 [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.
c# - .NET 单元测试可以使用什么动态语言?
我正在尝试为我的 C# 代码编写一些复杂的验收测试。我注意到,当我编写测试时,我做了很多显式转换以满足 C# 编译器的要求。我喜欢使用静态类型语言(如 C#)在生产代码中获得的类型安全,但对于我的测试,我很乐意使用动态类型语言(例如 IronPython 或 IronRuby)来避免所有显式转换。如果我的测试调用了一个对象上不存在的方法,那么代码在运行时失败是可以的(这只是一个失败的测试)。我目前正在使用 MS Test 作为我的单元测试框架,如果我能继续使用它会很方便。我可以使用哪种动态(基于 DLR)语言来与 MS Test 集成?如果您认为这会有所帮助,请随意提出不同的测试框架。
dynamic-language-runtime - Microsoft 在生产环境中是否支持 DLR 0.9
我知道 DLR 将与 C# 4.0 一起发布,但我不知道什么时候会发布。同时,如果有人想在生产环境中使用 DLR(没有硬件实时系统),他/她是否应该考虑将其推迟到 C# 4.0 出现?
我要问的是:微软支持现有的 0.9 版吗?
ironpython - 在 Asp.Net 中使用 Iron Python 时 ExtensionAttribute 的模糊参考
启动使用程序集的 Asp.Net 站点时出现以下错误,该程序集又使用 dlr 和 Iron Python 进行脚本编写。
BC30560:“ExtensionAttribute”在命名空间“System.Runtime.CompilerServices”中不明确。
这个问题似乎是已知的,并且在问题跟踪器中有一个解决方法。
然而,它说他们...
...希望在下一个版本中不需要此解决方法。
最新版本(我正在使用的版本)比报告中提到的版本晚。我还尝试下载问题跟踪器中提供的文件并替换当前版本中的文件,但这也不起作用。
除了下载源代码并手动构建之外,还有其他解决方案吗?
f# - 使用委托/DLR Lambda 覆盖实例方法?
为了学习 F# 和 .Net,我一直在玩即将发布的 DLR。
为此,我一直在玩反射,努力实现一个与 clr 完美集成的基本类型系统。虽然我能够实例化一个扩展 Object 的简单类型,但在调用它定义的方法时出现错误。
因为在一天结束时 DLR LambdaExpressions 编译为委托,我所做的是从生成的委托中取出生成的 MethodInfo 并调用它,用生成的方法的参数填充堆栈。然后返回它。正是在这一点上,我得到了我的错误。
这是我的代码:
这是我的错误,来自 fsi:
任何帮助或建议将不胜感激 - 我有点 .Net 新手,所以我的错误可能很简单。
迈克·科胡特
c# - 如何制作 LINQ 表达式来调用方法?
我一直在玩弄DLR并且有点卡在调用方法上。例如,假设我想创建一个表达式来将某些东西压入堆栈:
我被卡住了,因为我不确定如何从 _stack 或项目中获取表达式。有人能把我推向正确的方向吗?
c# - 关于 DLR (.NET 4.0 beta 1) 的最佳信息来源是什么?
我目前正在深入研究 C# 的第二版,并尝试实现“动态协议缓冲区”——即在我现有的协议缓冲区库之上的动态支持级别。因此,我有一个DlrMessage
派生自DynamicObject
. 在玩了一点之后,我设法让它以非常少的代码响应简单的属性,但我想走得更远 - 并真正了解发生了什么。
到目前为止,我还没有找到对 DLR 的任何好的解释——而且很多博客文章现在实际上已经过时了,因为在以前的 CTP 和 .NET 4.0 beta 1 之间发生了变化(我相信)。MSDN 文档对于 DynamicObject目前非常少。
我最直接的疑问是是否有一种简单的说法,“使用反射来绑定我无法处理的任何调用,使用这个特定的对象。” (换句话说,如果可能的话,我想增加现有的反射绑定,而不是自己做所有事情。)不幸的是,我并没有靠猜测走得太远。
是否有任何我应该知道的明确和最新的文档来源?我知道关于新技术的部分写作是探索,但我们将不胜感激:)
mono - JScript.NET 可以用于编写 .NET 应用程序的脚本吗?
由于 MS似乎已经在服务器端(ASP.NET Futures)和客户端(Silverlight)的最新 DLR 中杀死了托管 JavaScript,是否有人成功使用过时的 API 来允许使用 JScript.NET 对其应用程序对象进行脚本编写和/或可以解释如何做到这一点?如果 Mono/JScript 解决方案稳定且满足以下要求,它也可能是可接受的。
我们有兴趣从使用 Microsoft JScript 引擎和 ActiveScript API 的脚本宿主升级到具有更高性能和更容易扩展的东西。我们有超过 16,000 个服务器端脚本,源代码超过 42MB,因此重写为另一种脚本语言是不可能的。
我们的具体要求是:
- 性能明显优于 Microsoft JScript (ActiveScript) 引擎
- 更好的运行时性能和/或
- 保留预解析或编译的脚本(不要在每次运行时重新解析)
- 较低或相等的内存消耗
- 完全兼容 ECMA-262 ECMAScript
- 可以容忍一点移植
- 将自定义对象注入脚本命名空间
- .NET 对象(不是硬性要求)
- COM 对象或包装在 .NET 中的 COM 对象
- 从脚本实例化 COM 对象
- à la "new ActiveXObject(progid)"
- 考虑到前面的低优先级
- 包含文件
- 将“帮助脚本”预加载到脚本执行上下文中
- “包含”函数或语句(易于创建,鉴于上述情况)
- 支持全局范围内的代码
- 在全局范围内执行代码
- 保留在全局范围内初始化的值
- 从全局范围中提取值
- 在全局范围内注入和替换值
- 调用脚本定义的函数
- 带参数
- 并可以访问先前初始化的全局范围
- 源码级调试
- 商业或开源支持
- 过时的 API
.net - 转换和拆箱有什么区别?
在 DLR 的 LINQ 表达式中,这之间有什么区别:
还有这个:
这方面的文档似乎有点粗略。
更重要的是,其中一个等效于此 C# 代码:
ClassB 在哪里有一个隐式或显式运算符可以转换为 ClassA?
c# - C# 4.0 中使用动态类型的重载解决方案
我还没有访问 C# 4.0 预览版的权限。但我很好奇,C# 4.0 运行时在以下情况下调用重载方法时会做什么。它是否解决了通用重载......或专门的重载。
c# - 在 SilverlLight 应用程序中执行 JScript
我尝试使用 Silverlight DLR 制作可编写脚本的应用程序。当我尝试执行包含两行或多行代码的 JScript 代码时,只执行第一行。例如:我在С# 上编写了已编译的 SL 应用程序。主页包含名为“lblMessage”的标签和带有 Click 事件处理程序的按钮。
执行后 Label.Text 将等于“第一行代码”字符串。
为什么忽略第二行代码?
谢谢你。