Pregunta

Parece que no puede usar tipos genéricos directamente con com: ver Interoperación usando tipos genéricos en msdn.

¿Alguien puede dar un ejemplo de cómo se podría lograr esto?

No hay solución correcta

Otros consejos

Creo que la idea es que no puedes marcar un tipo genérico como ComVisible directamente, pero puede tener ese tipo implementar interfaces no genéricas que son ComVisible.

Entonces, dado un genérico Baker<Recipe>, necesitarías introducir algo como:

[ComVisible(true)]
public interface IBake
{
   Pastry Bake();
}

public class Baker<Recipe> : IBake
{
   public Baker(Recipe ingredients) {...}

   public Pastry Bake()
   {
      ...
   }
}

[ComVisible(true)]
public class Bakery
{
   public IBake GetBaker(string recipe)
   {
      // somehow get recipe type from string
      // and create and return Baker<Recipe>
      // Client can now call IBake.Bake().
   }
}

Supongo que este es el "indirectamente" del que está hablando el artículo. Sin embargo, no veo qué tiene que ver la colección de controles de VB.NET con esto ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top