0

我有一个相当复杂的 dll,其中包含两个命名空间,以及一些根本不属于命名空间的类。

为了简单起见,我有一个测试 dll,其中有两个类:

namespace MyAsmNamespace{
    public MyClass{
       public int doSomething(){ return 1;}
    }
}

public MySecondClass{
    public int doSomethingElse(){ return 2;}
}

我正在尝试使用 CreateObject 在经典 ASP 页面中使用此 dll 中的对象。

我已经注册了 dll 使用>RegAsm.exe /codebase /tlb

然后我使用加载dllset obj = CreateObject("MyAsmNamespace.MyClass")

现在指定命名空间的类工作得很好,但是对于没有命名空间的类,我不知道该怎么办。我试过set obj = CreateObject("MySecondClass")了,但这不起作用(我收到 ActiveX 组件无法创建对象错误)

我查看了 IL DASM,MySecondClass 在程序集中,但没有在命名空间下列出。在 regedit 中查看,我可以看到 MyAsmNamespace.MyClass 已注册,但我无法在任何地方找到 MySecondClass。

MySecondClass 是否必须在经典 asp 中引用的命名空间中,或者是否有默认命名空间成为它的一部分?

4

1 回答 1

0

经过几天的研究,如果该类未放置在命名空间内,我还没有找到一种方法来使用 CreateObject 引用程序集中的类。

于 2013-10-17T22:04:31.593 回答