我有一个相当复杂的dll,其中包含两个命名空间,以及一些根本不属于命名空间的类。
为了简单起见,我有一个测试dll,其中包含两个类:
namespace MyAsmNamespace{
public MyClass{
public int doSomething(){ return 1;}
}
}
和
public MySecondClass{
public int doSomethingElse(){ return 2;}
}
我正在尝试使用CreateObject在经典ASP页面中使用此dll中的对象。
我已经使用 >RegAsm.exe /codebase /tlb
注册了 dll
然后我使用 set obj = CreateObject("MyAsmNamespace.MyClass")
加载 dll
得很好,但是对于没有命名空间的类,我不知道该怎么办。 我尝试了set obj = CreateObject("MySecondClass")
,但这不起作用(我收到 ActiveX 组件无法创建对象错误(
我查看了IL DASM,MySecondClass在程序集中,但没有列在命名空间下。 查看注册表编辑器,我可以看到MyAsmNamespace.MyClass已注册,但我在任何地方都找不到MySecondClass。
MySecondClass 是否必须位于命名空间中才能在经典 asp 中引用,或者是否有它成为其一部分的默认命名空间?
经过几天的工作,如果该类未放置在命名空间内,我还没有找到使用 CreateObject 引用程序集内类的方法。