Avatar billede raos Nybegynder
21. juli 2003 - 15:41 Der er 5 kommentarer og
1 løsning

Hvordan henter man værdierne ud af et dictionary fra COM

Jeg har en WebClass lavet i C# der wrapper en COM  component. En metode på COM componenten returnerer et scripting.dictionary. Men jeg kan ikke få værdierne ud af det dictionary. jeg prøver følgende:


--------------------

Scripting.Dictionary dic = new Scripting.Dictionary();
dic = oCOM.Method();
           
object oValue = new  object();
string key= "MinKey";
object oKey = key;
dic.let_Item(ref oKey,ref oValue);
           
string MinKey = (string)oValue;

--------------------

Alternativt kunne man måske løbe dictionary'et igennem. Men der må da være en god måde at gøre dette på....
Avatar billede z42cool Nybegynder
22. juli 2003 - 08:19 #1
Det er ikke nødvendigt at instantiere et dictionary hvis dit COM objekt returnerer et. Man kan forestille sig at .Item propertyen er interop'et som en indexer og i så fald skal du gøre følgende:

Scripting.Dictionary dic = oCOM.Method();
string oValue = (string)dic("MinKey");
Avatar billede raos Nybegynder
22. juli 2003 - 09:32 #2
string oValue = (string)dic("MinKey");

Giver fejlen:  'dic' denotes a 'variable' where a 'method' was expected
Avatar billede z42cool Nybegynder
22. juli 2003 - 09:49 #3
He-he..... Det er jo fordi indexers anvender [], så prøv:

string oValue = (string)dic["MinKey"];
Avatar billede raos Nybegynder
22. juli 2003 - 10:01 #4
Ahhh - den burde jeg selv have fanget!!

Men jeg har løst problemet nu:

string key= "MinKey";
object oKey = key;
string sVærdi= (string)dic.get_Item(ref oKey);

Tak for sparringen
Avatar billede raos Nybegynder
22. juli 2003 - 10:01 #5
læg lige et svar
Avatar billede z42cool Nybegynder
22. juli 2003 - 10:03 #6
Jeg synes nu det er pudsigt at com/interop ikke fanger .Item propertyen på dictionary klassen og laver en indexer, men sådan er der nok så meget :-) Så er det jo godt du kan kalde get'eren direkte!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester