From a325ae4be242c034e72eac215a5de050e27d7f93 Mon Sep 17 00:00:00 2001 From: lindexi Date: Sat, 31 Oct 2020 11:20:32 +0800 Subject: [PATCH] Improve Linq performance --- src/JKang.IpcServiceFramework.Client/IpcClient.cs | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/src/JKang.IpcServiceFramework.Client/IpcClient.cs b/src/JKang.IpcServiceFramework.Client/IpcClient.cs index bb111ba..e142b33 100644 --- a/src/JKang.IpcServiceFramework.Client/IpcClient.cs +++ b/src/JKang.IpcServiceFramework.Client/IpcClient.cs @@ -152,23 +152,19 @@ private IpcRequest GetRequest(Expression exp, TInterface proxy) IpcRequestParameterType[] paramByName = null; IpcRequestParameterType[] genericByName = null; - var parameterTypes = (proxy as IpcProxy).LastInvocation.Method.GetParameters().Select(p => p.ParameterType); + var parameterTypes = (proxy as IpcProxy).LastInvocation.Method.GetParameters() + .Select(p => new IpcRequestParameterType(p.ParameterType)).ToArray(); - if (parameterTypes.Any()) + if (parameterTypes.Length > 0) { - paramByName = new IpcRequestParameterType[parameterTypes.Count()]; - int i = 0; - foreach (var type in parameterTypes) - { - paramByName[i++] = new IpcRequestParameterType(type); - } + paramByName = parameterTypes; } var genericTypes = (proxy as IpcProxy).LastInvocation.Method.GetGenericArguments(); if (genericTypes.Length > 0) { - genericByName = new IpcRequestParameterType[genericTypes.Count()]; + genericByName = new IpcRequestParameterType[genericTypes.Length]; int i = 0; foreach (var type in genericTypes) {