问题标签 [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.

0 投票
1 回答
2442 浏览

c# - .Net 3.5 DLR 动态对象帮助

我一直在努力获得一个在 .NET 3.5 中工作的简单 DynamicObject 示例。

使用最新版本的 DLR off codeplex 我无法弄清楚与以下内容等效的 .NET 3.5 是什么:

这当然是一个简化的例子。我计划从 DynamicObject 派生类,因此我能够使用相同的语义点样式表示法或访问方法来使用直接对象属性和存储在字典中的属性。目标是让 DLR 兼容对象在 DLR 支持的语言中使用,并在应用程序可以升级到 .NET 4.0 时提供与 .NET 4.0 DLR 功能的未来兼容性。

我的问题是 pre-.NET 4.0 我没有与 dynamic 关键字等效的概念。TryGetMember 等方法具有类似 GetMemberBinder 的 binder 参数。现在 .NET 4.0 有一个可用的 C# 默认绑定器,它允许在使用 dynamic 关键字时进行绑定,但是我无法找到或确定如何在 .NET 3.5 中执行等效操作。

目前,我的理解是我需要编写一个自定义绑定器,它基本上会复制 .NET 4.0 默认 C# 绑定器中可用的逻辑类型。

请有人指出我如何在 .NET 3.5 中使用 DynamicObject 并在运行时添加属性等而不访问 dynamic 关键字的正确方向。

参考:
动态添加成员到动态对象
http://tomlev2.wordpress.com/2009/10/08/c-4-0-implementing-a-custom-dynamic-object/

0 投票
1 回答
376 浏览

c# - 在最低安全上下文中运行 DLR 嵌入式脚本

我需要指出正确的方向。我已将 Iron Python 脚本主机嵌入到一个简单的 C# 应用程序中,但现在我需要了解在用户生成的 IronPython 或 IronRuby 脚本上锁定安全性的最佳实践。

具体来说,防止库导入的策略是什么?.NET 中是否有办法在不同的安全上下文中运行代码块或线程,例如防止文件系统访问?此外,是否可以为这个上下文分配一个内置级别或角色,而不是一个实际用户?

谢谢!

0 投票
4 回答
602 浏览

c# - 使用 DLR API 从 IronRuby 脚本捕获标准输出

我有一个非常简单的 test.rb 文件:

我想在 c# 中执行这个文件,例如:

如何捕获“Hello World”?

0 投票
2 回答
285 浏览

c#-4.0 - 'dynamic' 关键字和 DLR 是否将 C# 提升为动态类型语言的一等公民?

我知道 C# 4.0 中新的“动态”关键字有助于与动态 .NET 语言进行交互,并且可以通过使用它而不是反射来帮助削减代码。所以使用是针对非常特定的情况。

但是,我想知道的是,它是否会给 C# 提供在其他动态语言(例如 IronXXX 语言)中可以获得的所有动态优势?换句话说,是否有可能以动态语言风格用 C# 编写整个应用程序?

如果可能的话,是否推荐。为什么,或者为什么不分别?

我是否会在不切换到另一种语言的情况下获得动态语言的所有好处?

0 投票
1 回答
410 浏览

.net - Ironpython - 构造函数的命名参数

当我在 IronPython 中使用构造函数的命名参数创建 C# 类的实例时,它正在设置与参数名称相对应的属性。我希望禁用此行为,以便更好地控制评估属性的顺序。

这可能吗?

0 投票
2 回答
277 浏览

open-source - “外壳”的角色/责任是什么?

我一直在看IronPython项目和Orchard CMS项目的源代码。IronPython 使用名为 Microsoft.Scripting.Hosting.Shell(DLR的一部分)的命名空间进行操作。Orchard 项目还在各种接口(IShellContainerFactory、IShellSettings)中间接使用“外壳”的概念进行操作。

上面提到的所有项目都没有详尽的文档,因此如果您试图通过阅读源代码来了解整个应用程序结构/架构,那么从其名称中获取类型(类等)的含义非常有价值。

现在我想知道:这个源代码的作者在提到“shell”时有什么想法?当我听到“shell”这个词时,我会想到命令行解释器之类的东西。这对 IronPython 来说是有意义的,因为它有一个交互式解释器。但对我来说,这对于 Web CMS 没有多大意义。

当我遇到一种叫做“外壳”的东西时,我应该怎么想?一般而言,“外壳”的角色和责任是什么?这个问题还能回答吗?“外壳”的含义是主观的(使该术语无用)吗?

谢谢。

0 投票
1 回答
768 浏览

c# - IronPython 覆盖 __setattr__ 和 __getattr__

我正在尝试使用拦截 Python __setattr__ 和 __getattr__ 魔术方法的方法在 C# 中实现一个类。我发现了这个错误报告:

http://ironpython.codeplex.com/WorkItem/View.aspx?WorkItemId=8143

但那是从 2008 年开始的,我在任何地方都找不到 ICustomAttributes 或 PythonNameAttribute。我也没有在 Interfaces.cs 中看到任何有用的东西。有人可以指出我正确的方向吗?

0 投票
1 回答
274 浏览

c# - IronRuby 中的访问表达式方法

此代码在 C# 中运行良好:

但是 IronRuby 似乎没有一种构建 AST 的方法。我需要 Microsoft.Scripting.Core 和 Microsoft.Scripting 库。我需要别的东西吗?这是 IronRuby 代码:

给出:

0 投票
2 回答
521 浏览

c# - 是否可以在 .NET 3.5 网站项目中使用 DLR?

我正在尝试评估存储在数据库中的表达式,即

我没有自己解析它,而是尝试使用 DLR。我正在使用 Codeplex 存储库中的 .92 版本,我的解决方案是 .NET 3.5 网站;我在 System.Core 和 Microsoft.Scripting.ExtenstionAttribute .dll 之间存在冲突。

目前,我无法升级到 .NET 4.0 并大量使用 .net 3.5 功能(因此不能选择降级)。

非常感谢任何帮助。

0 投票
2 回答
4987 浏览

c# - DynamicObject 和 WCF 支持

我想知道是否有人幸运地让 DynamicObject 序列化并使用 WCF?

这是我的小测试:

我得到的错误是:

System.Runtime.Serialization.InvalidDataContractException 未处理 Message=Type 'ElasticTest1.MyDynamicObject' 不能从未用 DataContractAttribute 或 SerializableAttribute 标记的类型继承。考虑使用 DataContractAttribute 或 SerializableAttribute 标记基类型“System.Dynamic.DynamicObject”,或从派生类型中删除它们。

有什么建议么?