Do you have Option Strict turned on for VB?
Bryan Phillips
MCSD, MCDBA, MCSE
Blog: http://bphillips76.spaces.live.com
> I want to launch an application by reflection and get his handle
> back.
[quoted text clipped - 46 lines]
> Greetings,
> Davy
De Roeck - 29 Oct 2006 19:15 GMT
It was "Custum", i've changed it to strict On, but the same problem.
when i go through al the methods, i found two methods with the name
"Show" in the VB-Language, but only 1 in C#
>Do you have Option Strict turned on for VB?
>
>Bryan Phillips
>MCSD, MCDBA, MCSE
>Blog: http://bphillips76.spaces.live.com
De Roeck - 29 Oct 2006 21:10 GMT
I've futher analysed the differences and found with Reflector that
there are indeed two Show-methods
Public Sub Show()
Public Sub Show(ByVal owner As IWin32Window)
I want to invoke the first one, that without paramaters
so I use:
VB.NET
-------
Dim asm As System.Reflection.Assembly =
System.Reflection.Assembly.LoadFrom(applicationPath)
Dim typeUT As Type = asm.GetType(typeName)
Dim obj As Object = Activator.CreateInstance(typeUT)
Dim mi As MethodInfo = typeUT.GetMethod("Show", allFlags)
mi.Invoke(obj, Nothing)
------
But he also invoke the second method (of show).
when I run the same in C# then he only invokes that one without
paramters:
C#
------
Assembly asm = Assembly.LoadFrom(applicationPath);
Type typeUT = asm.GetType(typeName);
object obj = Activator.CreateInstance(typeUT);
MethodInfo mi = typeUT.GetMethod("Show", allFlags);
mi.Invoke(obj, null);
------
How to tell VB that he has to invoke only those without parameters?
>Do you have Option Strict turned on for VB?
>
[quoted text clipped - 52 lines]
>> Greetings,
>> Davy
Bryan Phillips - 29 Oct 2006 21:23 GMT
How about just finding the member based on the number of parameters?
Dim asm As System.Reflection.Assembly =
System.Reflection.Assembly.LoadFrom(applicationPath)
Dim typeUT As Type = asm.GetType(typeName)
Dim obj As Object = Activator.CreateInstance(typeUT)
Dim mi As MethodInfo = Nothing
For Each m As MethodInfo In typeUT.GetMethods("Show", allFlags)
If m.GetParameters().Length = 0 Then
mi = m
Exit For
End If
Next
mi.Invoke(obj, Nothing)
Bryan Phillips
MCSD, MCDBA, MCSE
Blog: http://bphillips76.spaces.live.com
> I've futher analysed the differences and found with Reflector that
> there are indeed two Show-methods
[quoted text clipped - 87 lines]
> >> Greetings,
> >> Davy
De Roeck - 29 Oct 2006 21:37 GMT
Thanks for your reply
When I use following code :
----
Dim asm As System.Reflection.Assembly =
System.Reflection.Assembly.LoadFrom(applicationPath)
Dim typeUT As Type = asm.GetType(typeName)
Dim obj As Object = Activator.CreateInstance(typeUT)
Dim mi As MethodInfo = Nothing
For Each m As MethodInfo In typeUT.GetMethods(allFlags)
If m.Name = "Show" And m.GetParameters().Length = 0 Then
mi = m
Exit For
End If
Next
mi.Invoke(obj, Nothing)
---
Then I recieve an InvalidOperationException in the application that's
invoked.
But I C#-sharp code it's executed perfectly. So, i should think that
there isn't any problem in the called application.
>How about just finding the member based on the number of parameters?
>
[quoted text clipped - 108 lines]
>> >> Greetings,
>> >> Davy