2009-03-28 9 views
1

en utilisant: VS2008, C#COM Interop IDictionary - Comment récupérer une valeur en C#?

J'ai une DLL COM que j'ai besoin d'utiliser dans un projet .NET. Dans là, j'ai une classe avec une méthode qui retourne un objet IDictionary. IDictionary est défini dans la DLL COM, donc je ne suis pas sûr si c'est la même chose que IDictionary dans .NET.

Mon problème: Je connais les clés du dictionnaire et je veux récupérer les valeurs. La documentation pour cette dll COM donne code ASP classique comme

someValue = oMyDictionary.someDictionaryKey 

Ma Question: Comment puis-je récupérer les valeurs des clés spécifiques en C#?

Lorsque je crée l'objet IDictionary en C# comme ceci:

IDictionary oDictConfig = oAppConfig.GetOptionsDictionary(""); 

VS2008 estime cet objet dictionnaire (interface) a les méthodes et propriétés suivantes:

Cast<> 
Count 
Equals 
GetEnumerator 
GetHashCode 
GetMultiple 
GetType 
let_Value 
OfType<> 
Prefix 
PutMultiple 
ToString 

Désolé si cela est un idiot question, mais je ne vois pas comment récupérer une valeur en passant une clé.

Répondre

0

Essayez ceci:

dicObject["myKey"] 
+0

Super qui a fonctionné. Merci. Juste nécessaire pour le lancer comme une ficelle. – autonomatt

0

Il semble que vous utilisez l'interface IDictionary COM de BizTalk Server 2000:

http://msdn.microsoft.com/en-us/library/ms936717.aspx

Cette interface devrait également avoir une propriété NewEnum (vérifiez l'assembly interop dans Reflector) devrait renvoyer un IEnumerable à vous. Cette IEnumerable sera une énumération des clés, que vous pouvez ensuite utiliser avec des appels à la propriété Value (avec la clé appropriée bien sûr) pour obtenir les valeurs.

Questions connexes