问题标签 [boo]

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 回答
1169 浏览

nant - Nant、Booc 和 x64

我有一个始终由 32 位机器构建/运行/运行的 .NET 项目。我有一台新的 64 位计算机,并试图解决让它在那里工作的任务。构建脚本在 nant 中,有一次我们使用 nant 任务编译了一些 boo 代码。boo 代码引用了我们的核心 DLL,它是在构建过程的早期从 c# 源构建的。

我尝试了两件事:将其构建为在 32 位模式下运行,并将其构建为在 64 位模式下运行。通过在几个程序(包括 booc)上使用 corflags,我能够构建以 32 位模式构建的项目,但最终在运行时遇到了一堆下游问题。所以我需要让它以 64 位模式构建,无论如何我认为这是更可取的。

根据 nant/booc 源代码,booc nant 任务使用 CLR 的 Process 类在进程内调用 booc.exe,因此(我认为)它应该从父进程继承 32 位或 64 位。不过,这并不能反映我所看到的。

这是我所做的:

  1. 使用64位版本的powershell调用nant
  2. 在我的任务中指定了 platform="x64"。我觉得我不应该这样做,因为 anycpu 应该没问题,但它似乎有所作为。

这是我得到的错误:

这意味着,根据 booc 源代码,“我试图反思性地列出您引用的程序集中的类型,但失败了”。我不知道这是否意味着“我认为我是 32 位但这些是 64 位 dll”或什么,我很困惑。

关于如何让它发挥作用的任何想法?

一些工作后更新,我发现这个问题与 boo 无关。我编写了一个快速的 c# 程序,它反射性地加载 dll 并以相同的方式中断。因此,出于某种原因,无论我设置什么平台(x86、x64 或 anycpu),我都无法在 x64 机器上反射加载它。所以不是嘘的错。因此,如果我有更好的问题,我将深入研究并重新发布。

较新的更新 事实证明,我的主要 DLL 的第三方依赖项之一坚持在 32 位环境中,即使它不是用 corflags 构建的。这会导致 assembly.GetTypes() 在 64 位模式下失败。

0 投票
5 回答
3083 浏览

visual-studio - Visual Studio 中的嘘声?

有没有办法在我的 msvs 中使用 boo?我希望我的表单调用一些 boo 代码而不是 C#。

0 投票
3 回答
531 浏览

.net - Boo 是编写单元测试的好选择吗?

我正在 Castle 堆栈上使用 C# 进行开发。我是单元测试的新手,我听说更灵活的语言(比 C#)可能会使编写测试更容易。

你认为仅仅为了编写单元测试而学习 Boo 值得吗?

我们使用 SharpDevelop IDE,因此提供了 Boo 支持,我一直在寻找学习新 CLR 语言的借口,但我只是不希望它妨碍学习单元测试。

0 投票
3 回答
1624 浏览

.net - 为什么会选择 Iron Python 而不是 Boo?

可能的重复:
BOO 与 IronPython
Boo 与 IronPython

假设您想将脚本语言嵌入到 .NET 应用程序中。

Boo 以 Python 语法为蓝本,但也包括类型推断,总的来说,它似乎是一种更好、更现代的语言,可以嵌入为脚本语言。

那么,为什么对 Iron Python 有这么多的关注呢?

后来 正如所指出的,这个问题与以下内容完全相同:this and this

0 投票
1 回答
621 浏览

boo - 在 Boo 中,如何指定数组参数?

在 Boo 中,假设我正在重写一个采用参数的方法,该参数采用string[] urls. 无论出于何种原因,类型推断与基类不匹配,因此我需要显式指定参数的类型。

事实证明这不是正确的 Boo 语法。指定我正在覆盖采用数组参数的方法的正确方法是什么?

通常我更喜欢期待一个 IEnumerable,但我覆盖了其他人的基类,它是 Rhino.DSL 的一部分。

编辑添加:事实证明我的问题仅与数组声明语法相关......我真正的问题是我的项目中引用了两个不同版本的 Boo 程序集。

0 投票
1 回答
2077 浏览

.net - 如何在 Rhino ETL DSL 中使用 FluentFile?

我一直在玩 Rhino ETL 库,非常喜欢它的发展方向。但是我发现它的坏处是文档很少,而且似乎没有足够好的信息来说明如何创建这些管道流程,尤其是使用 DSL。

我只是试图创建一个 DSL 文件来加载一个文件并将数据导出到另一个文件中,以查看这一切如何组合在一起。到目前为止我所拥有的是这个。

它抛出这个异常

File.boo(1,2): BCE0064: Boo.Lang.Compiler.CompilerError: 找不到名为“DelimitedRecord”或“DelimitedRecordAttribute”的属性(属性名称不区分大小写)。您的意思是 'System.Diagnostics.DelimitedListTraceListener' 吗?

如果我删除属性部分,我会收到此错误

例外:无法创建管道 ImportFile:必须使用 [DelimitedRecord] 或 [FixedLengthRecord] 属性标记 User 类。例外:无法执行操作 File.import_file:必须使用 [DelimitedRecord] 或 [FixedLengthRecord] 属性标记 User 类。

这里有什么想法吗?或者是否有任何关于如何在 DSL 中为 Rhino ETL 使用 FluentFile 的示例?

0 投票
1 回答
1049 浏览

macros - 困难的嘘句法宏

我正在为我正在开发的可扩展纸牌游戏引擎创建一个 DSL,使用 boo。

我有一个卡片宏,它为一种新型卡片创建一个类,并在构造函数中初始化一些属性。该宏有一些用于设置其他内容的子宏。基本上我希望它变成这样:

进入这个:

效果肯定需要是一个类,因为它会被传递(它是一个策略模式)。

到目前为止,我有这个简单的骨架:

现在,我不知道应该如何处理 card.Body 以使能力宏向构造函数添加代码,同时还生成一个嵌套类。有什么想法吗?这可以用当前的语言能力来完成吗?

0 投票
4 回答
1413 浏览

c# - Boo 100% C# 兼容吗?

Boo似乎是一种很酷的语言。它是 100% C# 兼容的吗?我的意思是:我可以使用任何 C# DLL/类吗?我可以使用 XNA 框架吗?

0 投票
2 回答
177 浏览

.net - 如何在 Boo 中创建调度表?

我希望能够将函数存储在哈希表中。我可以创建一个像这样的地图:

但我不能称之为:

这会产生以下错误消息:无法在类型 'object' 上调用表达式。既不工作Invoke也不Call工作。

我该怎么做 ?从我的猜测来看,存储的函数应该被转换为某种东西。

0 投票
1 回答
449 浏览

.net - 如何拦截 Boo 中的方法调用?

Ruby 有method_missing,Python 有getattr。Boo 是否提供了一些我可以用来拦截方法调用的东西?