Pergunta

Parece que você não pode usar tipos genéricos diretamente com com: veja Interoperando usando tipos genéricos no msdn.

Alguém pode dar um exemplo de como isso poderia ser alcançado?

Nenhuma solução correta

Outras dicas

Eu acho que a ideia é que você não pode marcar um tipo genérico como ComVisible diretamente, mas você pode ter esse tipo de implementar interfaces não genéricas que são ComVisible.

Então, dado um genérico Baker<Recipe>, você precisaria apresentar 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().
   }
}

Suponho que este seja o "indiretamente" do qual o artigo está falando. Não vejo bem o que a coleção de controles do VB.NET tem a ver com isso, no entanto ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top