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];
Похоже, вы используете COM-интерфейс IDictionary от BizTalk Server 2000:
http://msdn.microsoft.com/en-us/library/ms936717.aspx
Этот интерфейс также должен иметь свойство NewEnum (проверьте сборку взаимодействия в Reflector), которое должно возвращать IEnumerable. Этот IEnumerable будет перечислением ключей, которые затем можно использовать с вызовами свойства Value (с соответствующим ключом, конечно) для получения значений.