Skip to content

Commit 25eed67

Browse files
committed
迁移SourceGenerator到基础功能
1 parent 5c05ff5 commit 25eed67

File tree

15 files changed

+308
-398
lines changed

15 files changed

+308
-398
lines changed

App/Startup.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,11 @@ public void ConfigureServices(IServiceCollection services)
4545
// 添加控制器
4646
services.AddControllers().AddXmlSerializerFormatters();
4747

48-
// 应用编译时生成接口的代理类型代码
48+
// 全局默认配置
4949
services
5050
.AddWebApiClient()
51-
.UseJsonFirstApiActionDescriptor()
52-
.UseSourceGeneratorHttpApiActivator();
51+
.ConfigureHttpApi(o => { })
52+
.UseJsonFirstApiActionDescriptor();
5353

5454
// 注册userApi
5555
services.AddHttpApi(typeof(IUserApi)).ConfigureHttpApi(o =>

AppAot/Program.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ static void Main(string[] args)
1212
{
1313
services
1414
.AddWebApiClient()
15-
.UseSourceGeneratorHttpApiActivator() // SG 激活器
1615
.ConfigureHttpApi(options => // json SG生成器配置
1716
{
1817
var jsonContext = AppJsonSerializerContext.Default;

WebApiClientCore.Analyzers.SourceGenerator/DynamicDependencyBuilder.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
using Microsoft.CodeAnalysis;
22
using Microsoft.CodeAnalysis.Text;
33
using System.Collections.Generic;
4-
using System.Linq;
54
using System.Text;
65

76
namespace WebApiClientCore.Analyzers.SourceGenerator
@@ -36,7 +35,7 @@ public override string ToString()
3635
builder.AppendLine("#if NET5_0_OR_GREATER");
3736
builder.AppendLine("using System.Diagnostics.CodeAnalysis;");
3837
builder.AppendLine("using System.Runtime.CompilerServices;");
39-
builder.AppendLine($"namespace WebApiClientCore.Implementations");
38+
builder.AppendLine($"namespace WebApiClientCore");
4039
builder.AppendLine("{");
4140
builder.AppendLine(" /// <summary>动态依赖初始化器</summary>");
4241
builder.AppendLine($" static partial class {this.ClassName}");

WebApiClientCore.Extensions.SourceGenerator/DependencyInjection/WebApiClientBuilderExtensions.cs

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
using Microsoft.Extensions.DependencyInjection.Extensions;
2-
using WebApiClientCore;
3-
using WebApiClientCore.Implementations;
1+
using System;
42

53
namespace Microsoft.Extensions.DependencyInjection
64
{
@@ -12,18 +10,12 @@ public static class WebApiClientBuilderExtensions
1210
/// <summary>
1311
/// 编译时使用SourceGenerator生成接口的代理类型代码
1412
/// 运行时查找接口的代理类型并创建实例
15-
/// </summary>
16-
/// <remarks>
17-
/// <para>• 要求声明http接口的项目的编程语言为c#</para>
18-
/// <para>• 要求声明http接口的项目引用WebApiClientCore.Extensions.SourceGenerator包</para>
19-
/// <para>• 要求Visual Studio或msbuild工具为最新版本</para>
20-
/// </remarks>
13+
/// </summary>
2114
/// <param name="builder"></param>
2215
/// <returns></returns>
16+
[Obsolete("SourceGenerator功能已合并到基础包并默认启用")]
2317
public static IWebApiClientBuilder UseSourceGeneratorHttpApiActivator(this IWebApiClientBuilder builder)
2418
{
25-
builder.Services.RemoveAll(typeof(IHttpApiActivator<>));
26-
builder.Services.AddSingleton(typeof(IHttpApiActivator<>), typeof(SourceGeneratorHttpApiActivator<>));
2719
return builder;
2820
}
2921
}

WebApiClientCore.Extensions.SourceGenerator/Implementations/MethodFeature.cs

Lines changed: 0 additions & 59 deletions
This file was deleted.

WebApiClientCore.Extensions.SourceGenerator/NugetPackage/tools/install.ps1

Lines changed: 0 additions & 49 deletions
This file was deleted.

WebApiClientCore.Extensions.SourceGenerator/NugetPackage/tools/uninstall.ps1

Lines changed: 0 additions & 56 deletions
This file was deleted.

WebApiClientCore.Extensions.SourceGenerator/README.md

Lines changed: 0 additions & 9 deletions
This file was deleted.
Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
2-
3-
<PropertyGroup>
2+
<PropertyGroup>
43
<Nullable>enable</Nullable>
5-
<TargetFrameworks>netstandard2.1;net5.0</TargetFrameworks>
4+
<TargetFramework>netstandard2.1</TargetFramework>
65
<DocumentationFile>$(TargetPath)\$(AssemblyName).xml</DocumentationFile>
76

87
<SignAssembly>true</SignAssembly>
@@ -15,14 +14,4 @@
1514
<ItemGroup>
1615
<ProjectReference Include="..\WebApiClientCore\WebApiClientCore.csproj" />
1716
</ItemGroup>
18-
19-
<!--nuget analyzers和tools目录-->
20-
<ItemGroup>
21-
<None Include="NugetPackage\tools\*.*" PackagePath="tools" Pack="true" />
22-
<None Include="NugetPackage\analyzers\dotnet\cs\**" PackagePath="analyzers\dotnet\cs" Pack="true" />
23-
</ItemGroup>
24-
25-
<Target Name="PreBuild" BeforeTargets="PreBuildEvent">
26-
<Exec Command="dotnet publish ../WebApiClientCore.Analyzers.SourceGenerator/WebApiClientCore.Analyzers.SourceGenerator.csproj -c Release -o NugetPackage/analyzers/dotnet/cs" />
27-
</Target>
2817
</Project>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ namespace WebApiClientCore
66
/// <summary>
77
/// 表示HttpApi代理类的特性
88
/// </summary>
9-
[AttributeUsage(AttributeTargets.Class)]
109
[EditorBrowsable(EditorBrowsableState.Never)]
10+
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false)]
1111
public sealed class HttpApiProxyClassAttribute : Attribute
1212
{
1313
/// <summary>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ namespace WebApiClientCore
66
/// <summary>
77
/// 表示HttpApi代理方法的特性
88
/// </summary>
9-
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
109
[EditorBrowsable(EditorBrowsableState.Never)]
10+
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
1111
public sealed class HttpApiProxyMethodAttribute : Attribute
1212
{
1313
/// <summary>

0 commit comments

Comments
 (0)