C'est un suivi de mon previous question, mais vous n'avez pas besoin de le lire pour comprendre celui-là.Quelle interface de collection devrais-je utiliser dans .NET pour COM-interop?
Je concevais une interface dans .NET qui serait consommée à partir des applications COM (principalement VB6, mais Visual C++ 6 est également une possibilité) et je voudrais utiliser les types de collection comme argument et types de retour pour les méthodes dans L'interface.
Questions:
Qu'arrive-t-VB6 intégré dans les types de collections (tableaux, collections, dictionnaires) quand ils passent par interop? Je pense actuelle est que:
- tableaux ->
System.Array
- collections ->
Microsoft.VisualBasic.Collection
- dictionnaires ->
System.Collections.Hashtable
Est-ce exact?
- tableaux ->
- Quelles interfaces dois-je utiliser comme types de retour?
IEnumerable
,ICollection
,IList
,IDictionary
? Serais-je capable de faire un For Each in VB6 pour itérer sur ces interfaces? Dois-je utiliser les variantes génériques ou non génériques des interfaces?
Je dirais que les collections VB et dictionnaires traverseraient COM Interop et rester sous forme de collections VB et dictionnaires, de la même manière que n'importe quelle classe passerait par interop. – Brian
Vous voudrez peut-être voir http://stackoverflow.com/questions/7003844/why-is-it-that-arraylist-works-with-com-interop-but-ilistt-doesnt et http://stackoverflow.com/ questions/269581/what-are-alternatives-to-generic-collections-for-com-interop – nawfal