Browse Source

Fix namespace problem.

pull/14954/head
maliming 4 years ago
parent
commit
c73a3942d5
  1. 55
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ServiceProxying/CSharp/CSharpServiceProxyGenerator.cs

55
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ServiceProxying/CSharp/CSharpServiceProxyGenerator.cs

@ -19,7 +19,7 @@ public class CSharpServiceProxyGenerator : ServiceProxyGeneratorBase<CSharpServi
private const string ProxyDirectory = "ClientProxies"; private const string ProxyDirectory = "ClientProxies";
private static readonly string[] ServicePostfixes = { "AppService", "ApplicationService", "IntService", "IntegrationService" , "Service"}; private readonly static string[] ServicePostfixes = { "AppService", "ApplicationService", "IntService", "IntegrationService" , "Service"};
private const string AppServicePrefix = "Volo.Abp.Application.Services"; private const string AppServicePrefix = "Volo.Abp.Application.Services";
private const string NamespacePlaceholder = "<namespace>"; private const string NamespacePlaceholder = "<namespace>";
@ -29,7 +29,7 @@ public class CSharpServiceProxyGenerator : ServiceProxyGeneratorBase<CSharpServi
private const string ClassNamePlaceholder = "<className>"; private const string ClassNamePlaceholder = "<className>";
private const string ServiceInterfacePlaceholder = "<serviceInterface>"; private const string ServiceInterfacePlaceholder = "<serviceInterface>";
private const string DtoClassNamePlaceholder = "<dtoName>"; private const string DtoClassNamePlaceholder = "<dtoName>";
private static readonly string ClassTemplate = "// This file is automatically generated by ABP framework to use MVC Controllers from CSharp" + private readonly static string ClassTemplate = "// This file is automatically generated by ABP framework to use MVC Controllers from CSharp" +
$"{Environment.NewLine}<using>" + $"{Environment.NewLine}<using>" +
$"{Environment.NewLine}" + $"{Environment.NewLine}" +
$"{Environment.NewLine}// ReSharper disable once CheckNamespace" + $"{Environment.NewLine}// ReSharper disable once CheckNamespace" +
@ -44,7 +44,7 @@ public class CSharpServiceProxyGenerator : ServiceProxyGeneratorBase<CSharpServi
$"{Environment.NewLine}}}" + $"{Environment.NewLine}}}" +
$"{Environment.NewLine}"; $"{Environment.NewLine}";
private static readonly string ClassTemplateEmptyPart = "// This file is part of <className>, you can customize it here" + private readonly static string ClassTemplateEmptyPart = "// This file is part of <className>, you can customize it here" +
$"{Environment.NewLine}// ReSharper disable once CheckNamespace" + $"{Environment.NewLine}// ReSharper disable once CheckNamespace" +
$"{Environment.NewLine}namespace <namespace>;" + $"{Environment.NewLine}namespace <namespace>;" +
$"{Environment.NewLine}" + $"{Environment.NewLine}" +
@ -53,7 +53,7 @@ public class CSharpServiceProxyGenerator : ServiceProxyGeneratorBase<CSharpServi
$"{Environment.NewLine}}}" + $"{Environment.NewLine}}}" +
$"{Environment.NewLine}"; $"{Environment.NewLine}";
private static readonly string InterfaceTemplate = "// This file is automatically generated by ABP framework to use MVC Controllers from CSharp" + private readonly static string InterfaceTemplate = "// This file is automatically generated by ABP framework to use MVC Controllers from CSharp" +
$"{Environment.NewLine}<using>" + $"{Environment.NewLine}<using>" +
$"{Environment.NewLine}" + $"{Environment.NewLine}" +
$"{Environment.NewLine}// ReSharper disable once CheckNamespace" + $"{Environment.NewLine}// ReSharper disable once CheckNamespace" +
@ -65,24 +65,22 @@ public class CSharpServiceProxyGenerator : ServiceProxyGeneratorBase<CSharpServi
$"{Environment.NewLine}}}" + $"{Environment.NewLine}}}" +
$"{Environment.NewLine}"; $"{Environment.NewLine}";
private static readonly string DtoTemplate = "// This file is automatically generated by ABP framework to use MVC Controllers from CSharp" + private readonly static string DtoTemplate = "// This file is automatically generated by ABP framework to use MVC Controllers from CSharp" +
$"{Environment.NewLine}using System;" + $"{Environment.NewLine}<using>" +
$"{Environment.NewLine}using System.Collections.Generic;" + $"{Environment.NewLine}" +
$"{Environment.NewLine}using Volo.Abp.Application.Dtos;" + $"{Environment.NewLine}// ReSharper disable once CheckNamespace" +
$"{Environment.NewLine}using Volo.Abp.ObjectExtending;" + $"{Environment.NewLine}namespace <namespace>;" +
$"{Environment.NewLine}<using>" + $"{Environment.NewLine}" +
$"{Environment.NewLine}" + $"{Environment.NewLine}public <dtoName>" +
$"{Environment.NewLine}// ReSharper disable once CheckNamespace" + $"{Environment.NewLine}{{" +
$"{Environment.NewLine}namespace <namespace>;" + $"{Environment.NewLine} <property>" +
$"{Environment.NewLine}" + $"{Environment.NewLine}}}" +
$"{Environment.NewLine}public <dtoName>" + $"{Environment.NewLine}";
$"{Environment.NewLine}{{" +
$"{Environment.NewLine} <property>" + private readonly static List<string> ClassUsingNamespaceList = new()
$"{Environment.NewLine}}}" +
$"{Environment.NewLine}";
private static readonly List<string> ClassUsingNamespaceList = new()
{ {
"using System;", "using System;",
"using System.Collections.Generic;",
"using System.Threading.Tasks;", "using System.Threading.Tasks;",
"using Volo.Abp.Application.Dtos;", "using Volo.Abp.Application.Dtos;",
"using Volo.Abp.Http.Client;", "using Volo.Abp.Http.Client;",
@ -91,14 +89,23 @@ public class CSharpServiceProxyGenerator : ServiceProxyGeneratorBase<CSharpServi
"using Volo.Abp.Http.Client.ClientProxying;" "using Volo.Abp.Http.Client.ClientProxying;"
}; };
private static readonly List<string> InterfaceUsingNamespaceList = new() private readonly static List<string> InterfaceUsingNamespaceList = new()
{ {
"using System;", "using System;",
"using System.Collections.Generic;",
"using System.Threading.Tasks;", "using System.Threading.Tasks;",
"using Volo.Abp.Application.Dtos;", "using Volo.Abp.Application.Dtos;",
"using Volo.Abp.Application.Services;" "using Volo.Abp.Application.Services;"
}; };
private readonly static List<string> DtoUsingNamespaceList = new()
{
"using System;",
"using System.Collections.Generic;",
"using Volo.Abp.Application.Dtos;",
"using Volo.Abp.ObjectExtending;",
};
public CSharpServiceProxyGenerator( public CSharpServiceProxyGenerator(
CliHttpClientFactory cliHttpClientFactory, CliHttpClientFactory cliHttpClientFactory,
IJsonSerializer jsonSerializer) : IJsonSerializer jsonSerializer) :
@ -106,7 +113,7 @@ public class CSharpServiceProxyGenerator : ServiceProxyGeneratorBase<CSharpServi
{ {
} }
public override async Task GenerateProxyAsync(GenerateProxyArgs args) public async override Task GenerateProxyAsync(GenerateProxyArgs args)
{ {
CheckWorkDirectory(args.WorkDirectory); CheckWorkDirectory(args.WorkDirectory);
CheckFolder(args.Folder); CheckFolder(args.Folder);
@ -418,7 +425,7 @@ public class CSharpServiceProxyGenerator : ServiceProxyGeneratorBase<CSharpServi
foreach (var type in applicationApiDescriptionModel.Types.Where(x => types.Contains(x.Key))) foreach (var type in applicationApiDescriptionModel.Types.Where(x => types.Contains(x.Key)))
{ {
var dto = new StringBuilder(DtoTemplate); var dto = new StringBuilder(DtoTemplate);
var dtoUsingNamespaceList = new List<string>() var dtoUsingNamespaceList = new List<string>(DtoUsingNamespaceList)
{ {
$"using {GetTypeNamespace(type.Key)};" $"using {GetTypeNamespace(type.Key)};"
}; };
@ -478,7 +485,7 @@ public class CSharpServiceProxyGenerator : ServiceProxyGeneratorBase<CSharpServi
} }
} }
dto.Replace($"{UsingPlaceholder}", string.Join(Environment.NewLine, dtoUsingNamespaceList.OrderBy(x => x).Select(x => x))); dto.Replace($"{UsingPlaceholder}", string.Join(Environment.NewLine, dtoUsingNamespaceList.Distinct().OrderBy(x => x).Select(x => x)));
dto.Replace(PropertyPlaceholder, properties.ToString()); dto.Replace(PropertyPlaceholder, properties.ToString());
var folder = args.Folder.IsNullOrWhiteSpace() var folder = args.Folder.IsNullOrWhiteSpace()

Loading…
Cancel
Save