forked from enlightenment/efl
csharp: Returning only method name iwrapper.
Summary: GetUserMethods returning only strings, not the whole method informations. Reviewers: lauromoura, felipealmeida Reviewed By: lauromoura Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D10503
This commit is contained in:
parent
6231d5f252
commit
1adb765879
|
@ -64,7 +64,7 @@ struct function_registration_generator
|
|||
return false;
|
||||
|
||||
if(!as_generator(
|
||||
indent << "if (methods.FirstOrDefault(m => m.Name == \"" << string << "\") != null)\n"
|
||||
indent << "if (methods.Contains(\"" << string << "\"))\n"
|
||||
<< indent << "{\n"
|
||||
<< indent << scope_tab << "descs.Add(new EflOpDescription() {"
|
||||
#ifdef _WIN32
|
||||
|
|
|
@ -22,6 +22,7 @@ using System.Collections.Generic;
|
|||
using System.Diagnostics;
|
||||
using System.Reflection;
|
||||
using System.Threading;
|
||||
using System.Linq;
|
||||
|
||||
using static Eina.NativeCustomExportFunctions;
|
||||
using EoG = Efl.Eo.Globals;
|
||||
|
@ -368,26 +369,31 @@ public static class Globals
|
|||
return null;
|
||||
}
|
||||
|
||||
public static System.Collections.Generic.List<System.Reflection.MethodInfo>
|
||||
public static System.Collections.Generic.List<string>
|
||||
GetUserMethods(System.Type type)
|
||||
{
|
||||
var r = new System.Collections.Generic.List<System.Reflection.MethodInfo>();
|
||||
var flags = System.Reflection.BindingFlags.Instance
|
||||
var r = new System.Collections.Generic.List<string>();
|
||||
var flags =
|
||||
System.Reflection.BindingFlags.Instance
|
||||
| System.Reflection.BindingFlags.DeclaredOnly
|
||||
| System.Reflection.BindingFlags.Public
|
||||
| System.Reflection.BindingFlags.NonPublic;
|
||||
r.AddRange(type.GetMethods(flags));
|
||||
var base_type = type.BaseType;
|
||||
|
||||
for (;base_type != null; base_type = base_type.BaseType)
|
||||
for (var base_type = type;;base_type = base_type.BaseType)
|
||||
{
|
||||
if (IsGeneratedClass(base_type))
|
||||
r.AddRange(base_type.GetMethods(flags)
|
||||
.AsParallel().Select(info=>info.Name).ToList());
|
||||
if (IsGeneratedClass(base_type.BaseType))
|
||||
{
|
||||
return r;
|
||||
break;
|
||||
}
|
||||
|
||||
r.AddRange(base_type.GetMethods(flags));
|
||||
if (base_type.BaseType == null)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue