如何在vbscript中将对象作为方法参数传递

时间:2012-04-28 19:29:10

标签: c# object vbscript

我尝试在vbscript中进行小测试,因此在C#中创建了非常非常简单的dll(我是新的)并希望在vbscript中使用它。

C#代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;

namespace myNamespace
{
    public class myClass1
    {
        public string sVariable1="Variable content";
    }

    public class myClass2
    {
        public myClass1 myMethod2(myClass1 test)
        {
            return test;
        }
    }
}

和vbscript

Set oClass1 = CreateObject("myNamespace.myClass1")
Set oClass2 = CreateObject("myNamespace.myClass2")
WScript.Echo oClass1.sVariable1

Set return = oClass2.myMethod2(oClass1)
WScript.Echo return.sVariable1

运行vbscript后,在控制台上我有第一个echo显示“Variable content”,接下来我有错误“microsoft vbscript runtime error invalid procedure call或argument:'oClass2.myMethod2'”。

我能以这种方式传递对象吗?

参考MK2的注释。问题不是方法的返回类型,因为以下代码正在运行。

        public myClass1 myMethod2()
        {
            myClass1 test = new myClass1();
            return test;
        }

和vbs

Set return = oClass2.myMethod2()

现在在控制台上我有

Variable content
Variable content

但是如何在vbs中传递myClass1对象?

1 个答案:

答案 0 :(得分:0)

好的,我找到了解决方案。 在C#作为参数myMethod2我声明了ref对象,然后我使用了类型转换。像这样:

    public myClass1 myMethod2(ref object refObject)
    {
        myClass1 test = (myClass1)refObject;
        return test;
    }

现在vbscript工作得很好。我希望它对某人有帮助:))