2010-06-01 7 views
3

Je suis actuellement en train de concevoir une interface pour le logiciel .NET qui serait consommée par les objets COM - plus précisément, VB6. J'ai trouvé un certain nombre de pages de Microsoft expliquant comment créer une interface COM interopérable, mais je trébuche actuellement sur l'utilisation de Collections en temps de conception: J'aimerais pouvoir utiliser une collection standard VB6 " objet "dans le programme .NET - de cette façon, je serais en mesure de spécifier, dans l'interface, une telle collection comme un argument, ou comme un type de retour, ce qui simplifie le travail requis pour les clients d'utiliser l'interface.Comment puis-je manipuler une collection VB6 dans .NET?

Merci d'avance. Edit: Je n'ai pas l'intention d'utiliser les collections VB6 dans le programme .NET "real work" - je convertirais les collections VB6 dès que possible et j'appellerais d'autres méthodes en utilisant les collections .NET appropriées.

Répondre

2

Vous ne devez pas utiliser un type tel que Collection Object à partir de Visual Basic Runtime dans .NET.
Au lieu de cela, vous devriez essayer de trouver une classe équivalente dans le System.Collections namespace qui correspond le mieux à vos besoins. Consultez l'article suivant pour quelques conseils:

+0

Merci pour votre réponse. Cependant, comme je l'ai dit dans le corps du message, je veux le faire dans le contexte de la définition, dans .NET, d'une interface qui serait consommée par les programmes VB6. La raison pour moi d'utiliser les collections VB6 est de simplifier autant que possible l'utilisation de l'interface par les clients, en spécifiant les collections VB6 dans l'interface en tant que types de retour ou en tant qu'arguments. –

+2

Je comprends. Cependant, le fait est que vous ne devriez pas avoir besoin de faire cela. La couche d'interopérabilité COM intégrée dans .NET traduira automatiquement les types spécifiques à .NET dans les types COM équivalents pour vous et rassemblera les données pendant les deux périodes d'exécution. Dans votre cas, vous pouvez par exemple exposer des tableaux dans votre interface .NET pour une meilleure interopérabilité. –

+2

C'est exact. Les classes de collection .NET peuvent être itérées dans le code VB6 avec la syntaxe For Each. –

Questions connexes