Вызов экспортированного метода .NET из классического ASP - PullRequest
0 голосов
/ 22 июня 2011

Это странно.Я смог настроить среду так, чтобы я мог вызывать метод .NET (через COM) с классической страницы ASP.

На самом деле все работает так, как задумано, до тех пор, пока мне не придется вызывать метод .NET, требующий тип .NET.

Поэтому у меня есть метод с именем

ApplyCategory (int subjectId, Category cat) {...} И, конечно, у меня также определен тип Category.

На моей классической странице 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?И как правильно сделать звонок?

Ответы [ 2 ]

1 голос
/ 23 июня 2011

Кажется, я понял это.

Для справки, вот что я сделал.

COM не очень хорош с переопределением метода в этом контексте, поэтому мне пришлось изменить подпись для ApplyCategory с ApplyCategory (int, Category) для ApplyCategory (int, object)

и это сработало.

1 голос
/ 22 июня 2011

Я не могу помочь вам с «почему», но я бы порекомендовал изменить сигнатуру ApplyCategory (), чтобы она принимала два целых числа, а не целое число и категорию. Второе целое число будет идентификатором категории, и это сведет на нет необходимость передавать всю категорию.

...