From e692ee5cd6d300b5d6193472fbdf8eee228ad6a0 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Tue, 31 Aug 2021 17:58:43 +0800 Subject: [PATCH] Some improved --- .../CSharp/CSharpServiceProxyGenerator.cs | 17 +++++++++++++---- .../ClientProxyApiDescriptionFinder.cs | 16 ++++------------ .../Client/ClientProxying/ClientProxyBase.cs | 10 +--------- .../IClientProxyApiDescriptionFinder.cs | 2 +- 4 files changed, 19 insertions(+), 26 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ServiceProxy/CSharp/CSharpServiceProxyGenerator.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ServiceProxy/CSharp/CSharpServiceProxyGenerator.cs index ae7283c330..586c9183ed 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ServiceProxy/CSharp/CSharpServiceProxyGenerator.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ServiceProxy/CSharp/CSharpServiceProxyGenerator.cs @@ -39,14 +39,16 @@ namespace Volo.Abp.Cli.ServiceProxy.CSharp $"{Environment.NewLine} {{" + $"{Environment.NewLine} " + $"{Environment.NewLine} }}" + - $"{Environment.NewLine}}}"; + $"{Environment.NewLine}}}" + + $"{Environment.NewLine}"; private readonly string _clientProxyPartialTemplate = "// This file is part of , you can customize it here" + $"{Environment.NewLine}namespace " + $"{Environment.NewLine}{{" + $"{Environment.NewLine} public partial class " + $"{Environment.NewLine} {{" + $"{Environment.NewLine} }}" + - $"{Environment.NewLine}}}"; + $"{Environment.NewLine}}}" + + $"{Environment.NewLine}"; private readonly List _usingNamespaceList = new() { "using System;", @@ -76,7 +78,6 @@ namespace Volo.Abp.Cli.ServiceProxy.CSharp return; } - var projectName = Path.GetFileNameWithoutExtension(projectFilePath); var rootNamespace = GetRootNamespace(projectFilePath); var applicationApiDescriptionModel = await GetApplicationApiDescriptionModelAsync(args); @@ -394,7 +395,15 @@ namespace Volo.Abp.Cli.ServiceProxy.CSharp { var document = new XmlDocument(); document.Load(projectFilePath); - return document.SelectSingleNode("//RootNamespace").InnerText; + + var rootNamespace = document.SelectSingleNode("//RootNamespace")?.InnerText; + + if(rootNamespace.IsNullOrWhiteSpace()) + { + rootNamespace = Path.GetFileNameWithoutExtension(projectFilePath); + } + + return rootNamespace; } } } diff --git a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/ClientProxyApiDescriptionFinder.cs b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/ClientProxyApiDescriptionFinder.cs index 982a1d6f22..c40123c3f1 100644 --- a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/ClientProxyApiDescriptionFinder.cs +++ b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/ClientProxyApiDescriptionFinder.cs @@ -29,9 +29,9 @@ namespace Volo.Abp.Http.Client.ClientProxying Initial(); } - public Task FindActionAsync(string action) + public Task FindActionAsync(string methodName) { - return Task.FromResult(ActionApiDescriptionModels[action]); + return Task.FromResult(ActionApiDescriptionModels[methodName]); } public Task GetApiDescriptionAsync() @@ -50,16 +50,8 @@ namespace Volo.Abp.Http.Client.ClientProxying foreach (var actionItem in controller.Actions.Values) { - var stringBuilder = new StringBuilder($"{appServiceType}.{actionItem.Name}("); - stringBuilder.Append("("); - foreach (var parameter in actionItem.ParametersOnMethod) - { - stringBuilder.Append($"{parameter.Type},"); - } - stringBuilder.Append(")"); - stringBuilder.Replace(",)", ")"); - - var actionKey = stringBuilder.ToString(); + var actionKey = $"{appServiceType}.{actionItem.Name}.{string.Join("-", actionItem.ParametersOnMethod.Select(x => x.Type))}"; + if (!ActionApiDescriptionModels.ContainsKey(actionKey)) { ActionApiDescriptionModels.Add(actionKey, actionItem); 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 c6eb3a74fe..fc329dc16e 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 @@ -47,16 +47,8 @@ namespace Volo.Abp.Http.Client.ClientProxying private static string GetActionKey(string serviceTypeFullName, string methodName, params object[] arguments) { - var stringBuilder = new StringBuilder($"{serviceTypeFullName}.{methodName}("); - stringBuilder.Append("("); - foreach (var parameter in arguments) - { - stringBuilder.Append($"{parameter.GetType().FullName},"); - } - stringBuilder.Append(")"); - stringBuilder.Replace(",)", ")"); - return stringBuilder.ToString(); + return $"{typeof(TService).FullName}.{methodName}.{string.Join("-", arguments.Select(x => x.GetType().FullName))}"; } } } diff --git a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/IClientProxyApiDescriptionFinder.cs b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/IClientProxyApiDescriptionFinder.cs index 2cb30d1926..c02c883a6a 100644 --- a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/IClientProxyApiDescriptionFinder.cs +++ b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/IClientProxyApiDescriptionFinder.cs @@ -5,7 +5,7 @@ namespace Volo.Abp.Http.Client.ClientProxying { public interface IClientProxyApiDescriptionFinder { - Task FindActionAsync(string action); + Task FindActionAsync(string methodName); Task GetApiDescriptionAsync(); }