2010-10-21 4 views
1

Quelqu'un peut-il me diriger vers un exemple qui montre comment passer et/ou retourner une classe d'une classe .NET exposée COM. Le consommateur COM serait un VBScript. En outre, il est possible de passer un objet de VBScript à une méthode exposée .NET-COM? Par exempleCustom ou .Net Class comme paramètre COM ou sortie

[ComVisible(true)] 
public class A 
{ 
     public SomeClass MethodName(NameValueCollection param) 
     { 
      return new SomeClass(); 
     } 
} 

Comment appelez-vous MethodName dans VBScript (ASP)

Merci!

Répondre

2

Je ne pense pas NameValueCollection est marqué comme ComVisible, donc je soupçonne que non.

0

En VBScript, pour créer et utiliser l'objet ...

 

set obj= CreateObject("your.fully.qualified.com.classname") 
obj.Do_Some_Method(some_obj_param, another_obj_param) 
obj.Some_Property = anything 

Les seuls facteurs lors du passage des valeurs de toute nature et-vient sont a) comment votre classe COM translate them back and forth; et b) comment votre langue de consommation/client les traduit-elle? Les objets sont des objets. Mais fondamentalement, la classe COM que vous créez, appelez ou attribuez par doit avoir son interface correctement configurée et enregistrée. Et (je pense) quel que soit l'objet que vous créez en utilisant CreateObject(), vous devez implémenter l'une des propriétés qui l'exposent à COM pour pouvoir utiliser n'importe laquelle de ses méthodes ou accéder à ses propriétés. A savoir l'attribut ComVisible(true). Vous trouverez que la plupart des classes par défaut .Net ne sont pas entièrement appelables avec COM même si elles sont marquées autrement dans la documentation (probablement parce que votre langage client/client ne peut pas le gérer ou que COM n'est pas appelable), et par conséquent, vous devez faire votre propre custom COM Callable Wrapper.

Questions connexes