3

我尝试在 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 后,在控制台上我通过第一个回显显示“变量内容”,接下来我有错误“microsoft vbscript 运行时错误无效过程调用或参数:'oClass2.myMethod2'”。

我可以这样传递对象吗?

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

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

和vbs

Set return = oClass2.myMethod2()

现在在控制台上我有

Variable content
Variable content

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

4

1 回答 1

0

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

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

现在 vbscript 工作正常。我希望它对某人有帮助:)

于 2012-04-29T12:21:22.467 回答