diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ServiceProxying/CSharp/CSharpServiceProxyGenerator.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ServiceProxying/CSharp/CSharpServiceProxyGenerator.cs index 45b93423c4..5c17296272 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ServiceProxying/CSharp/CSharpServiceProxyGenerator.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ServiceProxying/CSharp/CSharpServiceProxyGenerator.cs @@ -538,18 +538,9 @@ public class CSharpServiceProxyGenerator : ServiceProxyGeneratorBase")) - { - var left = typeName.IndexOf("<", StringComparison.Ordinal); - var right = typeName.LastIndexOf(">", StringComparison.Ordinal); - var genericTypes = typeName.Substring(left + 1, right - left - 1); - foreach (var genericType in genericTypes.Split(",").Where(x => x.Contains("."))) - { - usingNamespaceList?.AddIfNotContains($"using {GetTypeNamespace(genericType)};"); - } - } - + + AddGenericTypeUsingNamespace(typeName, usingNamespaceList); + var type = new StringBuilder(); var s1 = typeName.Split("<"); for (var i = 0; i < s1.Length; i++) @@ -579,6 +570,25 @@ public class CSharpServiceProxyGenerator : ServiceProxyGeneratorBase usingNamespaceList) + { + if(!typeFullName.Contains("<")) + { + usingNamespaceList.AddIfNotContains($"using {GetTypeNamespace(typeFullName)};"); + } + + if (typeFullName.Contains("<") && typeFullName.Contains(">")) + { + var left = typeFullName.IndexOf("<", StringComparison.Ordinal); + var right = typeFullName.LastIndexOf(">", StringComparison.Ordinal); + var genericTypes = typeFullName.Substring(left + 1, right - left - 1); + foreach (var genericType in genericTypes.Split(",").Where(x => x.Contains("."))) + { + AddGenericTypeUsingNamespace(genericType, usingNamespaceList); + } + } + } + private static string NormalizeTypeName(string typeName) { var nullable = string.Empty;