【问题标题】:Embedding IronRuby in C# and DateTime在 C# 和 DateTime 中嵌入 IronRuby
【发布时间】:2009-09-25 15:30:16
【问题描述】:

当我嵌入 IronRuby 时,获取对 Ruby 的 DateTime/Date 类或 .NET 的 System.DateTime 的引用的正确方法是什么。我在尝试时遇到了错误

需要“日期”

我收到错误 - 没有要加载的文件 - 日期

当我尝试 需要“mscorlib.dll” 我收到错误 - 没有要加载的文件 - mscorlib.dll

这两种方法的正确做法是什么?

更新: 见 cmets 到 Jon Skeet

【问题讨论】:

    标签: c# .net scripting ironruby embedded-language


    【解决方案1】:

    时间是 ruby​​ 中的核心类型,它映射到 System.DateTime。

    要获取 DateTime.Now 你可以做 Time.new

    有日期时间扩展,所以你可以这样做 需要“时间” 或要求“日期时间”

    mscorlib 是隐含的并且始终是必需的,因此您无需明确要求它。 如果你想到达 CLR DateTime,你可以这样做

    System::DateTime.now 或 System::DateTime.Now

    【讨论】:

    • 感谢 +1。为什么我不能在 DateTime.new() 上使用参数有什么想法吗?见 cmets 给 Jon Skeet。
    • 有几种方法可以到达那里使用 CLR 构造函数,您可以使用 Time.clr_new 2007, 6, 5 使用 ruby​​ 方法获取本地时间,您可以使用 Time.local 2007, 6, 5 和 utc 你使用 Time.utc 2007, 6, 5
    【解决方案2】:

    你试过了吗

    require 'mscorlib'
    

    指定程序集名称而不是文件名?这就是old blog post 中指定的内容...

    【讨论】:

    • 这让我更进一步。现在我只是窒息 dt = System::DateTime.new(2007,6,5)。给出错误数量的参数(3 代表 0)。嗯
    • +1。尽管如此,仍然坚持 .new 构造函数爆炸。从来没有解决过。必须从我的一个对象中创建一个 CreateDateTime() 方法,以便我现在可以解决这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-20
    • 2011-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多