diff --git a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/ClientProxyBase.cs b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/ClientProxyBase.cs index caaed6f3df..5254b10238 100644 --- a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/ClientProxyBase.cs +++ b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/ClientProxyBase.cs @@ -55,7 +55,7 @@ namespace Volo.Abp.Http.Client.ClientProxying arguments = new ClientProxyRequestTypeValue(); } - var methodUniqueName = $"{typeof(TService).FullName}.{methodName}.{string.Join("-", arguments.Select(x => x.Key.FullName))}"; + var methodUniqueName = $"{typeof(TService).FullName}.{methodName}.{string.Join("-", arguments.Values.Select(x => x.Key.FullName))}"; var action = ClientProxyApiDescriptionFinder.FindAction(methodUniqueName); if (action == null) { @@ -65,7 +65,7 @@ namespace Volo.Abp.Http.Client.ClientProxying action, action.Parameters .GroupBy(x => x.NameOnMethod) - .Select((x, i) => new KeyValuePair(x.Key, arguments.Values.Skip(i).FirstOrDefault())) + .Select((x, i) => new KeyValuePair(x.Key, arguments.Values[i].Value)) .ToDictionary(x => x.Key, x => x.Value), typeof(TService)); } diff --git a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/ClientProxyRequestTypeValue.cs b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/ClientProxyRequestTypeValue.cs index 7560a9971e..56487e8f95 100644 --- a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/ClientProxyRequestTypeValue.cs +++ b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/ClientProxyRequestTypeValue.cs @@ -1,10 +1,31 @@ using System; +using System.Collections; using System.Collections.Generic; namespace Volo.Abp.Http.Client.ClientProxying { - public class ClientProxyRequestTypeValue : Dictionary + public class ClientProxyRequestTypeValue : IEnumerable> { + public List> Values { get; private set; } + public ClientProxyRequestTypeValue() + { + Values = new List>(); + } + + public void Add(Type type, object value) + { + Values.Add(new KeyValuePair(type, value)); + } + + public IEnumerator> GetEnumerator() + { + return Values.GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetEnumerator(); + } } }