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

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

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

Моя проблема: я знаю ключи словаря и хочу получить значения. Документация для этой COM-библиотеки дает код в классическом 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

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


person autonomatt    schedule 28.03.2009    source источник


Ответы (3)


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

var obj = oDictConfig[key];
person tvanfosson    schedule 28.03.2009

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

dicObject["myKey"]
person SirDemon    schedule 28.03.2009
comment
Отлично, что сработало. Спасибо. Просто нужно было преобразовать его как строку. - person autonomatt; 28.03.2009

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

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

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

person casperOne    schedule 28.03.2009