我有一个相当复杂的 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 中引用的命名空间中,或者是否有默认命名空间成为它的一部分?