【发布时间】:2015-06-22 22:37:00
【问题描述】:
我希望能够像使用静态类一样使用这个 COM 类,并从 VB6 应用程序静态调用方法/函数。这是我目前的课程:
using System;
using Linq;
using System.Runtime.InteropServices;
namespace VNDBUtils
{
[ComVisible(true)]
public static class BracketString(){
[ComVisible(true)]
public static string HellowWorld(){
get{
return "Hello World";
}
}
}
}
这是我目前在 VB6 中调用该类的方式,我正在创建该类的一个对象并以这种方式调用它。但是,既然该类是静态的,我不确定要使用的确切语法。
我原本以为可以使用下面的语法来调用它:
Dim test As VNDBUtils
test.BracketString.HelloWorld();
但是,这给了我一个错误,所以如果有人可以给我一个示例,说明如何从 Visual Basic 2006 应用程序静态调用此类。谢谢!
【问题讨论】:
-
您不能将命名空间名称存储在变量中。您必须使用
Imports或将其写出来,如 VNDBUtils.BrackString.HelloWorld() -
@HansPassant 谢谢,但这给了我以下错误:找不到方法或数据成员。由于某种原因,它看不到我的 BracketString 方法?
-
你必须发布真正的代码而不是这个无意义的 sn-p 才能对潜在问题做出正确的猜测。
-
您没有使用您发布的确切代码,它无法编译。所以我不可能猜到它真正的样子。甚至不清楚使用 [ComVisible(true)] 的意义何在。
-
那是不可能的,COM 必须能够创建该类的实例。所以它不能是一个静态类。
标签: c# .net dll vb6 com-interop