0

2 つの名前空間と、名前空間にまったく属さないいくつかのクラスを含むかなり複雑な dll があります。

簡単にするために、2 つのクラスを持つテスト 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

そして、次を使用してdllをロードしますset 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 に答える