Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在IronRuby中用重载构造函数实例化对象时出现问题?_C#_Ironruby - Fatal编程技术网

C# 在IronRuby中用重载构造函数实例化对象时出现问题?

C# 在IronRuby中用重载构造函数实例化对象时出现问题?,c#,ironruby,C#,Ironruby,我有一个c#类“Document”,它具有重载构造函数(int-id),(guid-id)和其他一些参数选项,并且没有重载0个参数。当我试图用IronRuby创建一个新对象时,我绊倒了。它表示希望有0个参数,因此: d = Document.new 很好。但是当我尝试的时候 d = Document.new some_integer 我收到了错误信息 "wrong number of arguments (1 for 0)" def类如下所示: public Document(int id

我有一个c#类“Document”,它具有重载构造函数(int-id),(guid-id)和其他一些参数选项,并且没有重载0个参数。当我试图用IronRuby创建一个新对象时,我绊倒了。它表示希望有0个参数,因此:

d = Document.new
很好。但是当我尝试的时候

d = Document.new some_integer
我收到了错误信息

"wrong number of arguments (1 for 0)"
def类如下所示:

public Document(int id) : base(id)
{
  // some code
}
编辑:这是完整的代码。这是在一个Umbraco上下文中,我将名称空间转换为小写,以便能够在IronRuby中使用它们:

$LOAD_PATH << "C:\\inetpub-dev\\dev.mysite.com\\bin"
require "cms.dll"
require "businesslogic.dll"

Web = Object.const_get("umbraco").const_get("cms").const_get("businesslogic").const_get("web")
existing_document_id = 1065
existing_document = Web::Document.new(existing_document_id)

我想知道您是否在某处遇到了名称空间冲突。
文档是否有可能在您所包含的内容中的其他地方定义

我们看不到您的基类是什么样子的
此外,我们无法看到您正在使用的要求/内容

我树立了一个榜样,它似乎如预期的那样起作用:

namespace IRConstructorParamSpike
{
    public abstract class BaseDocument
    {
        public BaseDocument(int id) { }
    }

    public class Document : BaseDocument
    {
        public Document(int id) : base(id) { }
    }

    public class SomeDocument : BaseDocument
    {
        public SomeDocument(int id) : base(id) { }
    }
}
下面是会话的样子(使用IronRuby 1.1.4.0):

需要“IRConstructorParamSpike.dll” =>正确

d=文件。新 (ir):1:在“const_missing”中:未初始化的常量对象::文档(NameError)
from(ir):1非常感谢-好的,所以我的Ruby当时并没有完全错,感觉很好。好的,一个可能的名称空间问题,不知道在哪里,我将尝试在那里看得更详细一些。我现在添加了完整的代码片段,希望澄清一点。啊!我也下载了umbraco来看看。事实证明,在文档上定义了一个方法,它实际上被命名为“New”。在这种情况下。。如果您真的只想使用构造函数(看起来是这样!),那么您需要使用“.clr\u new”来区分。看看这个:哇,只是哇,非常有帮助,效果非常好,非常感谢!)
namespace IRConstructorParamSpike
{
    public abstract class BaseDocument
    {
        public BaseDocument(int id) { }
    }

    public class Document : BaseDocument
    {
        public Document(int id) : base(id) { }
    }

    public class SomeDocument : BaseDocument
    {
        public SomeDocument(int id) : base(id) { }
    }
}