diff --git a/src/RemoteNET/Internal/Reflection/Rtti/RemoteRttiMethodInfo.cs b/src/RemoteNET/Internal/Reflection/Rtti/RemoteRttiMethodInfo.cs index 3cb332ed..4eb361a6 100644 --- a/src/RemoteNET/Internal/Reflection/Rtti/RemoteRttiMethodInfo.cs +++ b/src/RemoteNET/Internal/Reflection/Rtti/RemoteRttiMethodInfo.cs @@ -92,7 +92,8 @@ public override MethodImplAttributes GetMethodImplementationFlags() public override object Invoke(object obj, BindingFlags invokeAttr, Binder binder, object[] parameters, CultureInfo culture) { - return UnmanagedRemoteFunctionsInvokeHelper.Invoke(this.App as UnmanagedRemoteApp, DeclaringType, Name, obj, parameters); + // Using MangledName as it should be more globally unique then Name + return UnmanagedRemoteFunctionsInvokeHelper.Invoke(this.App as UnmanagedRemoteApp, DeclaringType, MangledName, obj, parameters); } public override MethodInfo GetBaseDefinition() diff --git a/src/ScubaDiver/MsvcDiver.cs b/src/ScubaDiver/MsvcDiver.cs index 10b5158b..c1a3e7a5 100644 --- a/src/ScubaDiver/MsvcDiver.cs +++ b/src/ScubaDiver/MsvcDiver.cs @@ -837,7 +837,7 @@ protected override string MakeInvokeResponse(ScubaDiverMessage arg) // Search the method/ctor with the matching signature List overloads = dumpedObjType.Methods.Concat(dumpedObjType.Constructors) - .Where(m => m.Name == request.MethodName) + .Where(m => m.DecoratedName == request.MethodName || m.UndecoratedFullName == request.MethodName) .Where(m => m.Parameters.Count == paramsList.Count + 1) // TODO: Check types .ToList();