diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2017-08-30 14:52:29 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2017-08-30 14:52:29 -0400 |
| commit | 0f23c7cfc1372ead03ab9b818e698441d4d53bd3 (patch) | |
| tree | 3bade7be91c556ec752a7ab8598128fa14c234d8 /Emby.Server.Implementations/Services/ServiceExec.cs | |
| parent | 8de80d43ba496535aac89d9ec260d8dc2550169b (diff) | |
3.2.30.3
Diffstat (limited to 'Emby.Server.Implementations/Services/ServiceExec.cs')
| -rw-r--r-- | Emby.Server.Implementations/Services/ServiceExec.cs | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/Emby.Server.Implementations/Services/ServiceExec.cs b/Emby.Server.Implementations/Services/ServiceExec.cs index 4a2199c89..fa9e26f28 100644 --- a/Emby.Server.Implementations/Services/ServiceExec.cs +++ b/Emby.Server.Implementations/Services/ServiceExec.cs @@ -24,19 +24,33 @@ namespace Emby.Server.Implementations.Services "POLL", "SUBSCRIBE", "UNSUBSCRIBE" }); - public static IEnumerable<MethodInfo> GetActions(this Type serviceType) + public static List<MethodInfo> GetActions(this Type serviceType) { - foreach (var mi in serviceType.GetRuntimeMethods().Where(i => i.IsPublic && !i.IsStatic)) + var list = new List<MethodInfo>(); + + foreach (var mi in serviceType.GetRuntimeMethods()) { + if (!mi.IsPublic) + { + continue; + } + + if (mi.IsStatic) + { + continue; + } + if (mi.GetParameters().Length != 1) continue; var actionName = mi.Name; - if (!AllVerbs.Contains(actionName, StringComparer.OrdinalIgnoreCase) && !string.Equals(actionName, ServiceMethod.AnyAction, StringComparison.OrdinalIgnoreCase)) + if (!AllVerbs.Contains(actionName, StringComparer.OrdinalIgnoreCase)) continue; - yield return mi; + list.Add(mi); } + + return list; } } @@ -59,8 +73,7 @@ namespace Emby.Server.Implementations.Services var actionName = request.Verb ?? "POST"; ServiceMethod actionContext; - if (ServiceExecGeneral.execMap.TryGetValue(ServiceMethod.Key(serviceType, actionName, requestName), out actionContext) - || ServiceExecGeneral.execMap.TryGetValue(ServiceMethod.AnyKey(serviceType, requestName), out actionContext)) + if (ServiceExecGeneral.execMap.TryGetValue(ServiceMethod.Key(serviceType, actionName, requestName), out actionContext)) { if (actionContext.RequestFilters != null) { |
