Skip to content

Commit aa56411

Browse files
committed
global::生成的代码
1 parent 4606651 commit aa56411

File tree

2 files changed

+16
-21
lines changed

2 files changed

+16
-21
lines changed

WebApiClientCore.Analyzers/SourceGenerator/HttpApiProxyClass.cs

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -81,28 +81,26 @@ public SourceText ToSourceText()
8181
public override string ToString()
8282
{
8383
var builder = new StringBuilder();
84+
builder.AppendLine("#pragma warning disable");
8485
builder.AppendLine("using System;");
85-
builder.AppendLine("using System.ComponentModel;");
86-
builder.AppendLine("using System.Diagnostics;");
87-
88-
builder.AppendLine("#pragma warning disable");
8986
builder.AppendLine($"namespace {this.Namespace}");
9087
builder.AppendLine("{");
9188

92-
builder.AppendLine($"\t[EditorBrowsable(EditorBrowsableState.Never)]");
93-
builder.AppendLine($"\t[DebuggerTypeProxy(typeof({this.httpApiFullName}))]");
94-
builder.AppendLine($"\t[HttpApiProxyClass(typeof({this.httpApiFullName}))]");
95-
builder.AppendLine($"\tpublic class {this.ClassName}:{this.httpApiFullName}");
89+
builder.AppendLine($"\t[global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)]");
90+
builder.AppendLine($"\t[global::System.Diagnostics.DebuggerTypeProxy(typeof({this.httpApiFullName}))]");
91+
builder.AppendLine($"\t[global::WebApiClientCore.HttpApiProxyClass(typeof({this.httpApiFullName}))]");
92+
builder.AppendLine($"\tpartial class {this.ClassName}:{this.httpApiFullName}");
9693
builder.AppendLine("\t{");
9794

98-
builder.AppendLine($"\t\tprivate readonly IHttpApiInterceptor {this.apiInterceptorFieldName};");
99-
builder.AppendLine($"\t\tprivate readonly ApiActionInvoker[] {this.actionInvokersFieldName};");
95+
builder.AppendLine($"\t\tprivate readonly global::WebApiClientCore.IHttpApiInterceptor {this.apiInterceptorFieldName};");
96+
builder.AppendLine($"\t\tprivate readonly global::WebApiClientCore.ApiActionInvoker[] {this.actionInvokersFieldName};");
10097

101-
builder.AppendLine($"\t\tpublic {this.httpApi.Name}(IHttpApiInterceptor apiInterceptor,ApiActionInvoker[] actionInvokers)");
98+
builder.AppendLine($"\t\tpublic {this.httpApi.Name}(global::WebApiClientCore.IHttpApiInterceptor apiInterceptor, global::WebApiClientCore.ApiActionInvoker[] actionInvokers)");
10299
builder.AppendLine("\t\t{");
103100
builder.AppendLine($"\t\t\tthis.{this.apiInterceptorFieldName} = apiInterceptor;");
104101
builder.AppendLine($"\t\t\tthis.{this.actionInvokersFieldName} = actionInvokers;");
105102
builder.AppendLine("\t\t}");
103+
builder.AppendLine();
106104

107105
var index = 0;
108106
foreach (var method in this.FindApiMethods())
@@ -145,11 +143,11 @@ private string BuildMethod(IMethodSymbol method, int index)
145143
var parametersString = string.Join(",", method.Parameters.Select(item => $"{GetFullName(item.Type)} {item.Name}"));
146144
var parameterNamesString = string.Join(",", method.Parameters.Select(item => item.Name));
147145
var paremterArrayString = string.IsNullOrEmpty(parameterNamesString)
148-
? "Array.Empty<object>()"
149-
: $"new object[] {{ {parameterNamesString} }}";
146+
? "global::System.Array.Empty<global::System.Object>()"
147+
: $"new global::System.Object[] {{ {parameterNamesString} }}";
150148

151149
var returnTypeString = GetFullName(method.ReturnType);
152-
builder.AppendLine($"\t\t[HttpApiProxyMethod({index})]");
150+
builder.AppendLine($"\t\t[global::WebApiClientCore.HttpApiProxyMethod({index})]");
153151
builder.AppendLine($"\t\tpublic {returnTypeString} {method.Name}( {parametersString} )");
154152
builder.AppendLine("\t\t{");
155153
builder.AppendLine($"\t\t\treturn ({returnTypeString})this.{this.apiInterceptorFieldName}.Intercept(this.{this.actionInvokersFieldName}[{index}], {paremterArrayString});");

WebApiClientCore.Analyzers/SourceGenerator/HttpApiProxyClassInitializer.cs

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,11 @@ public override string ToString()
4343
{
4444
var builder = new StringBuilder();
4545
builder.AppendLine("#if NET5_0_OR_GREATER");
46-
builder.AppendLine("#pragma warning disable");
47-
builder.AppendLine("using System.ComponentModel;");
48-
builder.AppendLine("using System.Diagnostics.CodeAnalysis;");
49-
builder.AppendLine("using System.Runtime.CompilerServices;");
46+
builder.AppendLine("#pragma warning disable");
5047
builder.AppendLine($"namespace WebApiClientCore");
5148
builder.AppendLine("{");
5249
builder.AppendLine(" /// <summary>动态依赖初始化器</summary>");
53-
builder.AppendLine(" [EditorBrowsable(EditorBrowsableState.Never)]");
50+
builder.AppendLine(" [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)]");
5451
builder.AppendLine($" static partial class {nameof(HttpApiProxyClassInitializer)}");
5552
builder.AppendLine(" {");
5653

@@ -61,10 +58,10 @@ public override string ToString()
6158
/// </summary>
6259
""");
6360

64-
builder.AppendLine(" [ModuleInitializer]");
61+
builder.AppendLine(" [global::System.Runtime.CompilerServices.ModuleInitializer]");
6562
foreach (var item in this.proxyClasses)
6663
{
67-
builder.AppendLine($" [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(global::{item.Namespace}.{item.ClassName}))]");
64+
builder.AppendLine($" [global::System.Diagnostics.CodeAnalysis.DynamicDependency(global::System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All, typeof(global::{item.Namespace}.{item.ClassName}))]");
6865
}
6966

7067
builder.AppendLine(" public static void Initialize()");

0 commit comments

Comments
 (0)