Eso es un seguimiento de mi previous question, pero no necesita leerlo para entenderlo.¿Qué interfaz de colección debo usar en .NET para COM-interoperabilidad?
Estoy diseñando una interfaz en .NET que se consumiría desde aplicaciones COM (principalmente VB6, pero Visual C++ 6 también es una posibilidad) y me gustaría usar los tipos de Colección como argumentos y tipos de retorno para los métodos en La interfaz.
Preguntas:
Qué ocurre con el VB6 una función de tipos de colección (arrays, colecciones, diccionarios) cuando van a través de interoperabilidad? Mi opinión actual es que:
- matrices ->
System.Array
- colecciones ->
Microsoft.VisualBasic.Collection
- Diccionarios ->
System.Collections.Hashtable
Es correcto?
- matrices ->
- ¿Qué interfaces debo usar como tipos de devolución?
IEnumerable
,ICollection
,IList
,IDictionary
? ¿Sería capaz de hacer un For Each en VB6 para iterar sobre estas interfaces? ¿Debo usar las variantes genéricas o no genéricas de las interfaces?
Mi conjetura sería que las colecciones de VB y diccionarios irían a través de interoperabilidad COM y permanecer como colecciones de VB y diccionarios, de la misma manera que cualquier clase pasaría por interoperabilidad. – Brian
Es posible que desee ver http://stackoverflow.com/questions/7003844/why-is-it-that-arraylist-works-with-com-interop-but-ilistt-doesnt y http://stackoverflow.com/ questions/269581/what-are-alternatives-to-generic-collections-for-com-interop – nawfal