Domanda

Sembra non è possibile utilizzare i tipi generici direttamente con COM: vedi Interoperabilità Utilizzando i tipi generici su MSDN.

Qualcuno può dare un esempio di come questo potrebbe essere realizzato?

Nessuna soluzione corretta

Altri suggerimenti

Penso che l'idea è che non è possibile contrassegnare un tipo generico come ComVisible direttamente, ma si può avere quel tipo di implementare interfacce non generici che sono ComVisible.

Quindi, dato un Baker<Recipe> generica, si avrebbe bisogno di introdurre qualcosa di simile:

[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().
   }
}

Suppongo che questo è il "indirettamente" che l'articolo sta parlando. Non ho ben vedere ciò collezione Controls di VB.NET ha a che fare con questo, però ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top