COM Interop IDictionary - Как получить значение в C #? - PullRequest
1 голос
/ 28 марта 2009

с использованием: VS2008, C #

У меня есть COM dll, который мне нужно использовать в проекте .NET. Там у меня есть класс с методом, который возвращает объект IDictionary. IDictionary определен в dll COM, поэтому я не уверен, что он совпадает с IDictionary в .NET.

Моя проблема: я знаю ключи словаря и хочу получить значения. Документация для этого COM DLL дает код в классическом ASP, как

someValue = oMyDictionary.someDictionaryKey

Мой вопрос: как получить значения для определенных ключей в C #?

Когда я создаю объект IDictionary в C #, вот так:

IDictionary oDictConfig = oAppConfig.GetOptionsDictionary("");

VS2008 считает, что этот объект словаря (интерфейс) имеет следующие методы и свойства:

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

Извините, если это глупый вопрос, но я не вижу, как получить значение, передавая ключ.

Ответы [ 3 ]

0 голосов
/ 28 марта 2009

Попробуйте это:

dicObject["myKey"]
0 голосов
/ 28 марта 2009

Похоже, вы используете COM-интерфейс IDictionary от BizTalk Server 2000:

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

Этот интерфейс также должен иметь свойство NewEnum (проверьте сборку взаимодействия в Reflector), которое должно возвращать IEnumerable вам Этот IEnumerable будет перечислением ключей, которые затем можно использовать с вызовами свойства Value (с соответствующим ключом, конечно) для получения значений.

0 голосов
/ 28 марта 2009

IDictionary имеет свойство Item среди членов , к которому вы обращаетесь через [].

var obj = oDictConfig[key];
...