Hasta ahora, siempre he decorado mis clases .NET que quiero usar desde VB6 con el atributo [AutoDual]
. El objetivo era obtener Intellisense en objetos .NET en el entorno VB6. Sin embargo, el otro día busqué en Google AutoDual y la primera respuesta es 'No usar AutoDual'.¿Por qué no debería usar AutoDual?
He buscado una explicación coherente de por qué no debería usarlo, pero no pude encontrarlo.
¿Alguien puede explicarlo?
La parte que no tengo clara es la siguiente: 'Cualquier cambio en una versión futura del diseño del tipo o cualquier tipo base romperá los clientes COM '. Es decir, si cambio una propiedad de int a double, ¿el cliente se romperá? ¿O significa que si simplemente recompilo la pieza .NET, el cliente VB6 ya no podrá consumirlo? – AngryHacker
Siempre y cuando no cambie la interfaz, debería estar bien. http://www.dotnetinterop.com/faq/?q=ClassInterface – kemiller2002
@Kevin, por lo que simplemente recompilar mi biblioteca .NET no afectará al consumidor que? ¿Y qué significa 'cambiar el orden de los métodos 'realmente? ¿Quiere decir cambiar el orden de los métodos en el código? Todavía no entiendo bien por qué deberíamos evitar AutoDual. Creo que se entiende que si cambias la interfaz, entonces el consumidor no va a funcionar. Siempre ha sido así en el mundo de VB6. – AngryHacker