[mono-vb] Using reflection to invoke a method written in VB throws an exception
dale.ragan at sinesignal.com
Fri Jun 4 09:51:15 EDT 2010
Any info on this? I am not sure how the Microsoft Sync Framework
discussion got started on this thread, but please see the first item in
this thread. I pasted it below for convenience also.
>First a little background, I am currently adding MonoDevelop support to
an >open-source project called SpecFlow. Just a quick intro to
SpecFlow, it >allows us to create behavior driven specification tests
based off a common >user story syntax called Gherkin. It is very similar
to Cucumber for >Ruby.
>Now for the problem, we have a test case to run external steps from other
>assemblies and one of the assemblies is a VB compiled assembly.
>MonoDevelop is using the vbnc compiler that I built from svn. Mono and
>MonoDevelop are built from svn also. These step methods are invoked
using >reflection. I have one class and two methods in this VB project
and the >first one executes correctly, but the second one does not. The
only >difference between the two methods, is that the method that throws
the >exception is decorated with an attribute called When. The other
method is >decorated with an attribute called Then. Of course When is a
keyword in >VB, therefore we surround it with [ ]. While invoking,
MonoMethod throws a >System.InvalidProgramException: Invalid IL code in
>ExternalStepsVB.VBStepDefinitions:step2 (): IL_000f: ret at line 223
during >the call to InternalInvoke which is a pinvoke to a native method.
When I >translate the method using C# the test passes, so there
shouldn't be >anything wrong with the code.
>I decided to post here, since it is complaining about the IL and also to
>get feedback before submitting a bug report. You can grab my source
>from github and test the ExternalSteps test yourself with MonoDevelop
using >the NUnitTestRunner to throw the exception that I am seeing. Let
me know >if you need anything else.
> Sorry, I just want to clarify a small typo in my message in this sentence:
> The other method is decorated with an attribute called Then.
> It should read: The other method is decorated with an attribute called
> View this message in context:
> Sent from the Mono - VB mailing list archive at Nabble.com.
> Mono-vb mailing list
> Mono-vb at lists.ximian.com
More information about the Mono-vb