2011-06-22 8 views
0

これは奇妙です。従来のASPページから.NETメソッド(COM経由)を呼び出せるように環境を設定することができました。従来のASPから.NETエクスポートされたメソッドを呼び出す

.NETタイプを必要とする.NETメソッドを呼び出す必要があるときまで、実際はすべて目的どおりに機能します。

だから私は

ApplyCategory(subjectId、カテゴリー猫をint型){...} という名前のメソッドを持っているそしてもちろん私も、定義されたカテゴリーの種類を持っています。

dim categoryUtil, cat 
set categoryUtil = Server.CreateObject("mydll.CategoryUtil") 
set cat = Server.CreateObject("mydll.Category") 
cat.id= 123 
cat.property = "so and so" 
'... 
categoryUtil.ApplyCategory(567, cat) ' I get this error here: 
'Microsoft VBScript runtime error '800a0005' 
'Invalid procedure call or argument: 'ApplyCategory' 

ここで何が問題になっています。私の古典的なASPページで

私は、これはありますか? COMは、ApplyCategoryのメソッドシグネチャを認識しませんか?そして、私はどのようにして正しく電話するのですか?

答えて

1

私は '理由'についてお手伝いできませんが、整数とカテゴリではなく2つの整数を受け入れるように、ApplyCategory()シグネチャを変更することをお勧めします。 2番目の整数はカテゴリIDになります。これにより、カテゴリ全体を渡す必要がなくなります。

+0

ですが、そのオブジェクトには、.NETに、cat.id = 123、cat.property = "so so"のように、これらの情報をすべて処理するために必要な情報が必要です。 – Haoest

1

私はそれを理解したと思います。

記録のために、ここで私がしたことがあります。

COMは、この文脈でオーバーライドして非常に良いではありませんので、私はApplyCategoryへ ApplyCategory(int型、カテゴリー)(int型、オブジェクト)

からApplyCategoryのための署名を変更しなければならなかったし、それが働きました。

+0

優秀、それに感謝します。私はほとんど間違いなくすぐにそれを使用しています。 – Digbyswift

関連する問題