2010-03-06 1 views
1

J'ai une fonction écrite en C# qui a un type de paramètre comme Dictionary<string , string>. Quand j'essaye d'appeler cette fonction dans VB.Net il ne montre pas le type comme Dictionary<string , string> il montre comme string. Ci-dessous est ma fonctionProblème lors de l'appel du paramètre de fonction en tant que dictionnaire de génériques de C# à vb.net

public bool RegisterCustomerAttribute(int CustomerId 
              , Dictionary<string , string> dictAttribute) 
    { 
     try 
     { 

      List<string> keys = new List<string>(dictAttribute.Keys); 

      foreach (string key in keys) 
      { 
       CustomerAttribute custattr = new CustomerAttribute(); 

       custattr.Customer.CustomerID = CustomerId; 
       custattr.Key = key; 
       custattr.Value = dictAttribute[key]; 

       customerattrepo.AddCustomerAttribute(custattr); 

      } 

      return true; 
     } 
     catch (Exception ex) 
     { 
      string strMsg = ex.Message; 
      return false; 
     } 
    } 

alt text http://i46.tinypic.com/qsv6fa.png

+2

Avez-vous modifié la méthode 'RegisterCustomerAttribute' à un moment donné de cette ancienne signature à la nouvelle? Vous devez reconstruire le projet C# pour qu'il apparaisse dans votre code VB.NET. –

+0

Vous avez raison de 200%. Petite erreur de mon côté .. –

Répondre

0

Au début, je pensais qu'il pourrait y avoir une surcharge qui ne prend que la clé et de la valeur, mais vous verriez une option pour au moins dans le IntelliSense. Donc, à la place, je parie qu'il regarde vieux ou obsolète code — vous devez recharger la référence à votre projet C# à partir de votre projet VB en studio visuel.

Questions connexes