2011-06-22 87 views
0

這很奇怪。我能夠設置環境,以便可以從傳統的ASP頁面調用.NET方法(通過COM)。從經典的ASP調用.NET導出的方法

一切實際上按預期工作,直到我必須調用需要.NET類型的.NET方法。

所以我有一個名爲

ApplyCategory(INT subjectId,類別貓){...} 的方法當然,我也有定義的類別類型。

在我傳統的ASP頁面,我有這樣的:

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' 

這裏有什麼問題? COM不能識別ApplyCategory的方法簽名?我該如何正確撥打電話?

回答

1

我無法幫助您處理'爲什麼',但我會建議ApplyCategory()簽名被更改,以便它接受兩個整數,而不是一個整數和一個類別。第二個整數將是類別ID,這將否定傳遞整個類別的需要。

+0

但你看到我需要該對象的原因是爲.NET提供處理該調用所需的所有信息,如cat.id = 123和cat.property =「如此等」 – Haoest

1

我想我明白了。

爲了記錄,這是我做的。

COM不是很好,在這種情況下方法重載,所以我必須爲ApplyCategory簽名從 ApplyCategory(INT,類別),以ApplyCategory(INT,對象)

改變和它的工作。

+0

非常好,感謝那。我幾乎肯定會很快使用它。 – Digbyswift