COM Interop IDictionary - Как получить значение в C#?

Используя: 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 ответа

Решение

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

var obj = oDictConfig[key];

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

dicObject["myKey"]

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

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

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

Другие вопросы по тегам