Situatie:
1) COM+ application met daarin .NET components (dmv regasm, interfaces etc.)
2) ASP (classic) maakt met behulp van Server.CreateObject een instantie van een .NET object (ClassA). Dit is een klasse met enkele properties. Deze properties worden geset
3) ASP maak instantie van een ander .NET object (ClassB), wederom via COM, en wil vervolgens een methode aanroepen met als parameter het eerder gemaakte object van stap 2
Sample ASP code
Sample .NET code (interface)
Probleem
Aanroepen van methode in ClassB resulteert in error. Nml 'Invalid procedure call or argument'.
De error verdwijnt door haakjes om de classA parameter te zetten. Dit heb ik ergens gevonden op een ander forum van iemand met hetzelfde probleem.
Hiermee verder gegaan kom ik bij het volgende probleem. Nml het object is leeg (dus alle properties zijn niet geset!) bij binnenkomen van de execute methode van ClassB terwijl deze wel gevuld zijn voor ik de methode aanroep (controle met response.write).
Ik hoop dat iemand me hiermee (op weg) kan helpen. Heb er al te lang mee zitten prutsen.
1) COM+ application met daarin .NET components (dmv regasm, interfaces etc.)
2) ASP (classic) maakt met behulp van Server.CreateObject een instantie van een .NET object (ClassA). Dit is een klasse met enkele properties. Deze properties worden geset
3) ASP maak instantie van een ander .NET object (ClassB), wederom via COM, en wil vervolgens een methode aanroepen met als parameter het eerder gemaakte object van stap 2
Sample ASP code
code:
1
2
3
4
5
6
7
8
9
10
11
12
| Dim classA, classB
Set classA = Server.CreateObject("Company.Product.ClassA")
classA.Property1 = 1;
classA.Property2 = "test";
classA.Property3 = "blaat";
Set classB = Server.CreateObject("Company.Product.ClassB")
result = classB.execute(classA) ' PROBLEEM ZIT HIER!
classA = nothing;
classB = nothing; |
Sample .NET code (interface)
code:
1
| int execute(ref object classA); |
Probleem
Aanroepen van methode in ClassB resulteert in error. Nml 'Invalid procedure call or argument'.
De error verdwijnt door haakjes om de classA parameter te zetten. Dit heb ik ergens gevonden op een ander forum van iemand met hetzelfde probleem.
code:
1
| result = classB.execute((classA)) |
Hiermee verder gegaan kom ik bij het volgende probleem. Nml het object is leeg (dus alle properties zijn niet geset!) bij binnenkomen van de execute methode van ClassB terwijl deze wel gevuld zijn voor ik de methode aanroep (controle met response.write).
Ik hoop dat iemand me hiermee (op weg) kan helpen. Heb er al te lang mee zitten prutsen.
[ Voor 6% gewijzigd door GF op 03-01-2006 19:29 . Reden: sample .net toegevoegd ]