cannot use instance of Assembly - compiler bug?
-
Hello Everyone, I am trying to get a Type contained into a *.dll file, by means of System.Reflection. After a long and painful Googling journey, I could see that the standard procedure to do this is:
Assembly theAssembly;
theAssembly = Assembly.LoadFrom("TheDll.dll");
Type theType = theAssembly.GetType("TheType");
// or: Type theType = theAssembly.GetTypes()[0] as I know that there will surely be just one Type in the namespaceI don't know if there's something wrong with my VS, my c# compiler or what... but this will NOT compile! First thing first, after I've declared
theAssembly
, I cannot access to its methods or properties through Intellisense. If I "force" the above piece of code, I get theInvalid token '=' in class, struct, or interface member declaration
error on the '=' in the second line. Am I doing something wrong? Any help would be much appreciated. Regards, Rey9999~~~ From Milano to The Hague, easy as it goes ~~~
-
Hello Everyone, I am trying to get a Type contained into a *.dll file, by means of System.Reflection. After a long and painful Googling journey, I could see that the standard procedure to do this is:
Assembly theAssembly;
theAssembly = Assembly.LoadFrom("TheDll.dll");
Type theType = theAssembly.GetType("TheType");
// or: Type theType = theAssembly.GetTypes()[0] as I know that there will surely be just one Type in the namespaceI don't know if there's something wrong with my VS, my c# compiler or what... but this will NOT compile! First thing first, after I've declared
theAssembly
, I cannot access to its methods or properties through Intellisense. If I "force" the above piece of code, I get theInvalid token '=' in class, struct, or interface member declaration
error on the '=' in the second line. Am I doing something wrong? Any help would be much appreciated. Regards, Rey9999~~~ From Milano to The Hague, easy as it goes ~~~
Code compiles fine for me. Post the code for the whole class. I suspect you're missing a close brace somewhere at the bottom.
Simon
-
Hello Everyone, I am trying to get a Type contained into a *.dll file, by means of System.Reflection. After a long and painful Googling journey, I could see that the standard procedure to do this is:
Assembly theAssembly;
theAssembly = Assembly.LoadFrom("TheDll.dll");
Type theType = theAssembly.GetType("TheType");
// or: Type theType = theAssembly.GetTypes()[0] as I know that there will surely be just one Type in the namespaceI don't know if there's something wrong with my VS, my c# compiler or what... but this will NOT compile! First thing first, after I've declared
theAssembly
, I cannot access to its methods or properties through Intellisense. If I "force" the above piece of code, I get theInvalid token '=' in class, struct, or interface member declaration
error on the '=' in the second line. Am I doing something wrong? Any help would be much appreciated. Regards, Rey9999~~~ From Milano to The Hague, easy as it goes ~~~
I'd say you're missing a using System.Reflection at the top of this file.
Christian Graus Please read this if you don't understand the answer I've given you "also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
-
I'd say you're missing a using System.Reflection at the top of this file.
Christian Graus Please read this if you don't understand the answer I've given you "also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
Hi, thanks for the quick reply. @Christian: I imported System.reflection, just did not copy here the whole code. @Simon: I do not think it's something about braces, because if i do this:
Assembly theAssembly;
theAssembly = Assembly.LoadFrom("TheDll.dll");
Type theType = theAssembly.GetType("TheType");
// or: Type theType = theAssembly.GetTypes()[0] as I know that there will surely be just one Type in the namespaceI get the error, but if I do this:
Type theType = Assembly.LoadFrom("TheDll.dll").GetTypes()[0]
everything runs fine! and I did not change anything in the rest of the class. Any thought on this?
-
Hi, thanks for the quick reply. @Christian: I imported System.reflection, just did not copy here the whole code. @Simon: I do not think it's something about braces, because if i do this:
Assembly theAssembly;
theAssembly = Assembly.LoadFrom("TheDll.dll");
Type theType = theAssembly.GetType("TheType");
// or: Type theType = theAssembly.GetTypes()[0] as I know that there will surely be just one Type in the namespaceI get the error, but if I do this:
Type theType = Assembly.LoadFrom("TheDll.dll").GetTypes()[0]
everything runs fine! and I did not change anything in the rest of the class. Any thought on this?
OK, I added the using statement and copied your code, it compiles just fine.
Christian Graus Please read this if you don't understand the answer I've given you "also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
-
Hi, thanks for the quick reply. @Christian: I imported System.reflection, just did not copy here the whole code. @Simon: I do not think it's something about braces, because if i do this:
Assembly theAssembly;
theAssembly = Assembly.LoadFrom("TheDll.dll");
Type theType = theAssembly.GetType("TheType");
// or: Type theType = theAssembly.GetTypes()[0] as I know that there will surely be just one Type in the namespaceI get the error, but if I do this:
Type theType = Assembly.LoadFrom("TheDll.dll").GetTypes()[0]
everything runs fine! and I did not change anything in the rest of the class. Any thought on this?
This is a compiler error yeah? post the code for the whole class, I'm sure you're missing something. maybe like a semi colon. You haven't got one at the end of your commented out line, so maybe you've got an extra on on a line below, so when you change the comments the semi colons are correct. All the lines you've provided compile fine for me (I just had to add the semi colon to get the commented out line to compile).
Simon
-
OK, I added the using statement and copied your code, it compiles just fine.
Christian Graus Please read this if you don't understand the answer I've given you "also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
Jesus H. Christ, I was doing the dumbest and biggest mistake - the one you learn NOT to do on Programmers kindergarten, Day One. I was trying to access the assembly outside of a method. Thanks all the same. I just need to sleep more than 5 hours a night...
~~~ From Milano to The Hague, easy as it goes ~~~
-
This is a compiler error yeah? post the code for the whole class, I'm sure you're missing something. maybe like a semi colon. You haven't got one at the end of your commented out line, so maybe you've got an extra on on a line below, so when you change the comments the semi colons are correct. All the lines you've provided compile fine for me (I just had to add the semi colon to get the commented out line to compile).
Simon
-
:) :) this one above is my co-worker, sitting in front of me, I just told him I found the error - he's trying to act big ;P
~~~ From Milano to The Hague, easy as it goes ~~~
Nice one. we all make simple mistakes from time to time.
Simon