From 4fe0c6e21df94e82b52a73c9992116c754125ae1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96hlund?= Date: Fri, 8 May 2026 08:00:46 +0200 Subject: [PATCH 1/2] Enhance function endpoint generator to support global namespace --- .../Handlers/ShipOrderHandler.cs | 3 -- .../ShippingEndpoint.cs | 5 +-- .../FunctionEndpointGenerator.Emitter.cs | 12 +++--- .../FunctionEndpointGenerator.Parser.cs | 3 +- ...tionEndpointInGlobalNamespace.approved.txt | 37 +++++++++++++++++++ .../FunctionEndpointGeneratorTests.cs | 7 ++++ src/Tests.Analyzers/TestSources.cs | 20 ++++++++++ 7 files changed, 74 insertions(+), 13 deletions(-) create mode 100644 src/Tests.Analyzers/ApprovalFiles/FunctionEndpointGeneratorTests.GeneratesFunctionEndpointInGlobalNamespace.approved.txt diff --git a/src/IntegrationTest.Shipping/Handlers/ShipOrderHandler.cs b/src/IntegrationTest.Shipping/Handlers/ShipOrderHandler.cs index 18ac3336..2e38eae2 100644 --- a/src/IntegrationTest.Shipping/Handlers/ShipOrderHandler.cs +++ b/src/IntegrationTest.Shipping/Handlers/ShipOrderHandler.cs @@ -1,8 +1,5 @@ -namespace IntegrationTest.Shipping.Handlers; - using IntegrationTest.Shared; using Microsoft.Extensions.Logging; -using NServiceBus; public class ShipOrderHandler(ILogger logger) : IHandleMessages { diff --git a/src/IntegrationTest.Shipping/ShippingEndpoint.cs b/src/IntegrationTest.Shipping/ShippingEndpoint.cs index 90661c5e..069fcdce 100644 --- a/src/IntegrationTest.Shipping/ShippingEndpoint.cs +++ b/src/IntegrationTest.Shipping/ShippingEndpoint.cs @@ -1,9 +1,8 @@ -namespace IntegrationTest.Shipping; - using Azure.Messaging.ServiceBus; using IntegrationTest.Shared; using Microsoft.Azure.Functions.Worker; +// Intentionally in the global namespace to make sure that the generator can handle it [NServiceBusFunction] public partial class ShippingEndpoint { @@ -18,6 +17,6 @@ public partial Task Shipping( public static void ConfigureShipping(EndpointConfiguration endpoint) { CommonEndpointConfig.Apply(endpoint); - endpoint.AddHandler(); + endpoint.AddHandler(); } } \ No newline at end of file diff --git a/src/NServiceBus.AzureFunctions.Analyzer/FunctionEndpointGenerator.Emitter.cs b/src/NServiceBus.AzureFunctions.Analyzer/FunctionEndpointGenerator.Emitter.cs index 96154fbc..ba2c06b7 100644 --- a/src/NServiceBus.AzureFunctions.Analyzer/FunctionEndpointGenerator.Emitter.cs +++ b/src/NServiceBus.AzureFunctions.Analyzer/FunctionEndpointGenerator.Emitter.cs @@ -35,9 +35,8 @@ static void EmitMethodBodies(SourceProductionContext spc, ImmutableArray +using Microsoft.Extensions.DependencyInjection; + +public partial class Functions +{ + public partial global::System.Threading.Tasks.Task Run( + global::Azure.Messaging.ServiceBus.ServiceBusReceivedMessage message, + global::Microsoft.Azure.Functions.Worker.ServiceBusMessageActions messageActions, + global::Microsoft.Azure.Functions.Worker.FunctionContext context, + global::System.Threading.CancellationToken cancellationToken) + { + var processor = context.InstanceServices + .GetRequiredKeyedService("ProcessOrder"); + return processor.Process(message, messageActions, context, cancellationToken); + } +} + +// == NServiceBus.AzureFunctions.Analyzer/NServiceBus.AzureFunctions.Analyzer.FunctionEndpointGenerator/FunctionRegistration.g.cs == +// +namespace NServiceBus.Generated +{ + [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] + [global::NServiceBus.AutoGeneratedFunctionRegistrationsAttribute] + public static class GeneratedFunctionRegistrations_GeneratesFunctionEndpointInGlobalNamespace_1f0b44ddcd47d001 + { + public static global::System.Collections.Generic.IEnumerable + GetFunctionManifests() + { + yield return new global::NServiceBus.FunctionManifest( + "ProcessOrder", "sales-queue", "AzureServiceBus", + (endpointconfiguration, iservicecollection, iconfiguration, ihostenvironment) => global::Functions.ConfigureProcessOrder(endpointconfiguration, iconfiguration, ihostenvironment), + global::NServiceBus.Configuration.AdvancedExtensibility.AzureServiceBusFunctionsHostApplicationBuilderExtensions.AddNServiceBusAzureServiceBusFunction); + yield break; + } + } +} \ No newline at end of file diff --git a/src/Tests.Analyzers/FunctionEndpointGeneratorTests.cs b/src/Tests.Analyzers/FunctionEndpointGeneratorTests.cs index 5d2cd68d..c640dbea 100644 --- a/src/Tests.Analyzers/FunctionEndpointGeneratorTests.cs +++ b/src/Tests.Analyzers/FunctionEndpointGeneratorTests.cs @@ -15,6 +15,13 @@ public void GeneratesFunctionEndpoint() => .Run() .Approve(); + [Test] + public void GeneratesFunctionEndpointInGlobalNamespace() => + SourceGeneratorTest.ForIncrementalGenerator() + .WithSource(TestSources.ValidFunctionInGlobalNamespace) + .Run() + .Approve(); + [Test] public void GeneratesNoRegistrationsForOrdinaryFunctionsOnly() => SourceGeneratorTest.ForIncrementalGenerator() diff --git a/src/Tests.Analyzers/TestSources.cs b/src/Tests.Analyzers/TestSources.cs index 38d22b10..ab150844 100644 --- a/src/Tests.Analyzers/TestSources.cs +++ b/src/Tests.Analyzers/TestSources.cs @@ -74,4 +74,24 @@ public static void ConfigureProcessOrder( } } """; + + public const string ValidFunctionInGlobalNamespace = """ + public partial class Functions + { + [NServiceBusFunction] + [Function("ProcessOrder")] + public partial Task Run( + [ServiceBusTrigger("sales-queue", Connection = "AzureServiceBus", AutoCompleteMessages = false)] ServiceBusReceivedMessage message, + ServiceBusMessageActions messageActions, + FunctionContext context, + CancellationToken cancellationToken); + + public static void ConfigureProcessOrder( + EndpointConfiguration endpointConfiguration, + IConfiguration iconfiguration, + IHostEnvironment ihostenvironment) + { + } + } + """; } From 8c142a82a83af527de82a9b6632845d7b4c1efaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96hlund?= Date: Fri, 8 May 2026 08:58:05 +0200 Subject: [PATCH 2/2] Refactor namespace handling to use file-scoped namespaces in generated code --- .../FunctionCompositionGenerator.Emitter.cs | 4 +- .../FunctionEndpointGenerator.Emitter.cs | 2 +- .../Utility/SourceWriterExtensions.cs | 12 ++++ ...s.GeneratesProjectComposition.approved.txt | 56 +++++++++---------- ...apeAllowsAdditionalParameters.approved.txt | 35 ++++++------ ...EndpointWithoutMessageActions.approved.txt | 35 ++++++------ ...sts.GeneratesFunctionEndpoint.approved.txt | 35 ++++++------ ...tionEndpointInGlobalNamespace.approved.txt | 47 +++++++++++----- 8 files changed, 127 insertions(+), 99 deletions(-) diff --git a/src/NServiceBus.AzureFunctions.Analyzer/FunctionCompositionGenerator.Emitter.cs b/src/NServiceBus.AzureFunctions.Analyzer/FunctionCompositionGenerator.Emitter.cs index 6471d7d3..3714702f 100644 --- a/src/NServiceBus.AzureFunctions.Analyzer/FunctionCompositionGenerator.Emitter.cs +++ b/src/NServiceBus.AzureFunctions.Analyzer/FunctionCompositionGenerator.Emitter.cs @@ -18,7 +18,7 @@ public static void Emit(SourceProductionContext context, CompositionSpec? compos var writer = new SourceWriter(); writer.PreAmble(); - writer.WithOpenNamespace(composition.RootNamespace); + writer.WithFileScopedNamespace(composition.RootNamespace); writer.WithGeneratedCodeAttribute(); writer.WriteLine("internal static class NServiceBusFunctionsComposition"); writer.WriteLine("{"); @@ -45,4 +45,4 @@ public static void Emit(SourceProductionContext context, CompositionSpec? compos context.AddSource(TrackingNames.Composition, writer.ToSourceText()); } } -} \ No newline at end of file +} diff --git a/src/NServiceBus.AzureFunctions.Analyzer/FunctionEndpointGenerator.Emitter.cs b/src/NServiceBus.AzureFunctions.Analyzer/FunctionEndpointGenerator.Emitter.cs index ba2c06b7..af9e880f 100644 --- a/src/NServiceBus.AzureFunctions.Analyzer/FunctionEndpointGenerator.Emitter.cs +++ b/src/NServiceBus.AzureFunctions.Analyzer/FunctionEndpointGenerator.Emitter.cs @@ -79,7 +79,7 @@ static void EmitRegistration(SourceProductionContext spc, ImmutableArray"); writer.WriteLine("/// Registrations for NServiceBus functions in this assembly."); writer.WriteLine("/// "); diff --git a/src/NServiceBus.AzureFunctions.Analyzer/Utility/SourceWriterExtensions.cs b/src/NServiceBus.AzureFunctions.Analyzer/Utility/SourceWriterExtensions.cs index 5a9b09c6..5544bd46 100644 --- a/src/NServiceBus.AzureFunctions.Analyzer/Utility/SourceWriterExtensions.cs +++ b/src/NServiceBus.AzureFunctions.Analyzer/Utility/SourceWriterExtensions.cs @@ -42,6 +42,18 @@ public SourceWriter WithOpenNamespace(string? namespaceName) return writer; } + public SourceWriter WithFileScopedNamespace(string? namespaceName) + { + if (string.IsNullOrWhiteSpace(namespaceName)) + { + return writer; + } + + writer.WriteLine($"namespace {namespaceName};"); + writer.WriteLine(); + return writer; + } + public void CloseCurlies() { while (writer.Indentation > 0) diff --git a/src/Tests.Analyzers/ApprovalFiles/FunctionCompositionGeneratorTests.GeneratesProjectComposition.approved.txt b/src/Tests.Analyzers/ApprovalFiles/FunctionCompositionGeneratorTests.GeneratesProjectComposition.approved.txt index 5b8850c4..d5dc2f21 100644 --- a/src/Tests.Analyzers/ApprovalFiles/FunctionCompositionGeneratorTests.GeneratesProjectComposition.approved.txt +++ b/src/Tests.Analyzers/ApprovalFiles/FunctionCompositionGeneratorTests.GeneratesProjectComposition.approved.txt @@ -37,21 +37,20 @@ public partial class Functions // Suppress warnings about [Obsolete] usage in generated code. #pragma warning disable CS0612, CS0618 -namespace My.FunctionApp +namespace My.FunctionApp; + +[global::System.CodeDom.Compiler.GeneratedCodeAttribute("NService.Core.Analyzer.Tests", "1.0.0")] +internal static class NServiceBusFunctionsComposition { - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("NService.Core.Analyzer.Tests", "1.0.0")] - internal static class NServiceBusFunctionsComposition + extension(global::Microsoft.Azure.Functions.Worker.Builder.FunctionsApplicationBuilder builder) { - extension(global::Microsoft.Azure.Functions.Worker.Builder.FunctionsApplicationBuilder builder) + public void AddNServiceBusFunctions() { - public void AddNServiceBusFunctions() - { - global::System.ArgumentNullException.ThrowIfNull(builder); + global::System.ArgumentNullException.ThrowIfNull(builder); - foreach (var manifest in global::NServiceBus.Generated.GeneratedFunctionRegistrations_GeneratesProjectComposition_4d91953014478208.GetFunctionManifests()) - { - manifest.Register(builder, manifest); - } + foreach (var manifest in global::NServiceBus.Generated.GeneratedFunctionRegistrations_GeneratesProjectComposition_4d91953014478208.GetFunctionManifests()) + { + manifest.Register(builder, manifest); } } } @@ -95,27 +94,26 @@ namespace Demo // Suppress warnings about [Obsolete] usage in generated code. #pragma warning disable CS0612, CS0618 -namespace NServiceBus.Generated +namespace NServiceBus.Generated; + +/// +/// Registrations for NServiceBus functions in this assembly. +/// +[global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] +[global::NServiceBus.AutoGeneratedFunctionRegistrationsAttribute] +[global::System.CodeDom.Compiler.GeneratedCodeAttribute("NService.Core.Analyzer.Tests", "1.0.0")] +public static class GeneratedFunctionRegistrations_GeneratesProjectComposition_4d91953014478208 { /// - /// Registrations for NServiceBus functions in this assembly. + /// Gets function manifests for NServiceBus functions in this assembly. /// - [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] - [global::NServiceBus.AutoGeneratedFunctionRegistrationsAttribute] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("NService.Core.Analyzer.Tests", "1.0.0")] - public static class GeneratedFunctionRegistrations_GeneratesProjectComposition_4d91953014478208 + public static global::System.Collections.Generic.IEnumerable + GetFunctionManifests() { - /// - /// Gets function manifests for NServiceBus functions in this assembly. - /// - public static global::System.Collections.Generic.IEnumerable - GetFunctionManifests() - { - yield return new global::NServiceBus.FunctionManifest( - "ProcessOrder", "sales-queue", "AzureServiceBus", - (endpointconfiguration, iservicecollection, iconfiguration, ihostenvironment) => global::Demo.Functions.ConfigureProcessOrder(endpointconfiguration, iconfiguration, ihostenvironment), - global::NServiceBus.Configuration.AdvancedExtensibility.AzureServiceBusFunctionsHostApplicationBuilderExtensions.AddNServiceBusAzureServiceBusFunction); - yield break; - } + yield return new global::NServiceBus.FunctionManifest( + "ProcessOrder", "sales-queue", "AzureServiceBus", + (endpointconfiguration, iservicecollection, iconfiguration, ihostenvironment) => global::Demo.Functions.ConfigureProcessOrder(endpointconfiguration, iconfiguration, ihostenvironment), + global::NServiceBus.Configuration.AdvancedExtensibility.AzureServiceBusFunctionsHostApplicationBuilderExtensions.AddNServiceBusAzureServiceBusFunction); + yield break; } } \ No newline at end of file diff --git a/src/Tests.Analyzers/ApprovalFiles/FunctionEndpointGeneratorLenientShapeTests.GeneratesEndpointWithExtraUnrecognizedParametersWhenShapeAllowsAdditionalParameters.approved.txt b/src/Tests.Analyzers/ApprovalFiles/FunctionEndpointGeneratorLenientShapeTests.GeneratesEndpointWithExtraUnrecognizedParametersWhenShapeAllowsAdditionalParameters.approved.txt index 4c64a59a..77d98b5d 100644 --- a/src/Tests.Analyzers/ApprovalFiles/FunctionEndpointGeneratorLenientShapeTests.GeneratesEndpointWithExtraUnrecognizedParametersWhenShapeAllowsAdditionalParameters.approved.txt +++ b/src/Tests.Analyzers/ApprovalFiles/FunctionEndpointGeneratorLenientShapeTests.GeneratesEndpointWithExtraUnrecognizedParametersWhenShapeAllowsAdditionalParameters.approved.txt @@ -41,27 +41,26 @@ namespace Demo.Testing // Suppress warnings about [Obsolete] usage in generated code. #pragma warning disable CS0612, CS0618 -namespace NServiceBus.Generated +namespace NServiceBus.Generated; + +/// +/// Registrations for NServiceBus functions in this assembly. +/// +[global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] +[global::NServiceBus.AutoGeneratedFunctionRegistrationsAttribute] +[global::System.CodeDom.Compiler.GeneratedCodeAttribute("NService.Core.Analyzer.Tests", "1.0.0")] +public static class GeneratedFunctionRegistrations_GeneratesEndpointWithExtraUnrecognizedParametersWhenShapeAllowsAdditionalParameters_eb6e20d89fd29573 { /// - /// Registrations for NServiceBus functions in this assembly. + /// Gets function manifests for NServiceBus functions in this assembly. /// - [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] - [global::NServiceBus.AutoGeneratedFunctionRegistrationsAttribute] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("NService.Core.Analyzer.Tests", "1.0.0")] - public static class GeneratedFunctionRegistrations_GeneratesEndpointWithExtraUnrecognizedParametersWhenShapeAllowsAdditionalParameters_eb6e20d89fd29573 + public static global::System.Collections.Generic.IEnumerable + GetFunctionManifests() { - /// - /// Gets function manifests for NServiceBus functions in this assembly. - /// - public static global::System.Collections.Generic.IEnumerable - GetFunctionManifests() - { - yield return new global::NServiceBus.FunctionManifest( - "ProcessOrder", "sales-queue", "StorageConn", - (endpointconfiguration, iservicecollection, iconfiguration, ihostenvironment) => global::Demo.Testing.Functions.ConfigureProcessOrder(endpointconfiguration), - global::Demo.Testing.TestFunctionManifestRegistration.Register); - yield break; - } + yield return new global::NServiceBus.FunctionManifest( + "ProcessOrder", "sales-queue", "StorageConn", + (endpointconfiguration, iservicecollection, iconfiguration, ihostenvironment) => global::Demo.Testing.Functions.ConfigureProcessOrder(endpointconfiguration), + global::Demo.Testing.TestFunctionManifestRegistration.Register); + yield break; } } \ No newline at end of file diff --git a/src/Tests.Analyzers/ApprovalFiles/FunctionEndpointGeneratorTests.GeneratesEndpointWithoutMessageActions.approved.txt b/src/Tests.Analyzers/ApprovalFiles/FunctionEndpointGeneratorTests.GeneratesEndpointWithoutMessageActions.approved.txt index 2b4aa84a..2557dd15 100644 --- a/src/Tests.Analyzers/ApprovalFiles/FunctionEndpointGeneratorTests.GeneratesEndpointWithoutMessageActions.approved.txt +++ b/src/Tests.Analyzers/ApprovalFiles/FunctionEndpointGeneratorTests.GeneratesEndpointWithoutMessageActions.approved.txt @@ -40,27 +40,26 @@ namespace Demo.Testing // Suppress warnings about [Obsolete] usage in generated code. #pragma warning disable CS0612, CS0618 -namespace NServiceBus.Generated +namespace NServiceBus.Generated; + +/// +/// Registrations for NServiceBus functions in this assembly. +/// +[global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] +[global::NServiceBus.AutoGeneratedFunctionRegistrationsAttribute] +[global::System.CodeDom.Compiler.GeneratedCodeAttribute("NService.Core.Analyzer.Tests", "1.0.0")] +public static class GeneratedFunctionRegistrations_GeneratesEndpointWithoutMessageActions_18234b41cd275b7a { /// - /// Registrations for NServiceBus functions in this assembly. + /// Gets function manifests for NServiceBus functions in this assembly. /// - [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] - [global::NServiceBus.AutoGeneratedFunctionRegistrationsAttribute] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("NService.Core.Analyzer.Tests", "1.0.0")] - public static class GeneratedFunctionRegistrations_GeneratesEndpointWithoutMessageActions_18234b41cd275b7a + public static global::System.Collections.Generic.IEnumerable + GetFunctionManifests() { - /// - /// Gets function manifests for NServiceBus functions in this assembly. - /// - public static global::System.Collections.Generic.IEnumerable - GetFunctionManifests() - { - yield return new global::NServiceBus.FunctionManifest( - "ProcessOrder", "sales-queue", "StorageConn", - (endpointconfiguration, iservicecollection, iconfiguration, ihostenvironment) => global::Demo.Testing.Functions.ConfigureProcessOrder(endpointconfiguration), - global::Demo.Testing.TestFunctionManifestRegistration.Register); - yield break; - } + yield return new global::NServiceBus.FunctionManifest( + "ProcessOrder", "sales-queue", "StorageConn", + (endpointconfiguration, iservicecollection, iconfiguration, ihostenvironment) => global::Demo.Testing.Functions.ConfigureProcessOrder(endpointconfiguration), + global::Demo.Testing.TestFunctionManifestRegistration.Register); + yield break; } } \ No newline at end of file diff --git a/src/Tests.Analyzers/ApprovalFiles/FunctionEndpointGeneratorTests.GeneratesFunctionEndpoint.approved.txt b/src/Tests.Analyzers/ApprovalFiles/FunctionEndpointGeneratorTests.GeneratesFunctionEndpoint.approved.txt index d5306aa4..739ef546 100644 --- a/src/Tests.Analyzers/ApprovalFiles/FunctionEndpointGeneratorTests.GeneratesFunctionEndpoint.approved.txt +++ b/src/Tests.Analyzers/ApprovalFiles/FunctionEndpointGeneratorTests.GeneratesFunctionEndpoint.approved.txt @@ -36,27 +36,26 @@ namespace Demo // Suppress warnings about [Obsolete] usage in generated code. #pragma warning disable CS0612, CS0618 -namespace NServiceBus.Generated +namespace NServiceBus.Generated; + +/// +/// Registrations for NServiceBus functions in this assembly. +/// +[global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] +[global::NServiceBus.AutoGeneratedFunctionRegistrationsAttribute] +[global::System.CodeDom.Compiler.GeneratedCodeAttribute("NService.Core.Analyzer.Tests", "1.0.0")] +public static class GeneratedFunctionRegistrations_GeneratesFunctionEndpoint_64aca0f8d2adde54 { /// - /// Registrations for NServiceBus functions in this assembly. + /// Gets function manifests for NServiceBus functions in this assembly. /// - [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] - [global::NServiceBus.AutoGeneratedFunctionRegistrationsAttribute] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("NService.Core.Analyzer.Tests", "1.0.0")] - public static class GeneratedFunctionRegistrations_GeneratesFunctionEndpoint_64aca0f8d2adde54 + public static global::System.Collections.Generic.IEnumerable + GetFunctionManifests() { - /// - /// Gets function manifests for NServiceBus functions in this assembly. - /// - public static global::System.Collections.Generic.IEnumerable - GetFunctionManifests() - { - yield return new global::NServiceBus.FunctionManifest( - "ProcessOrder", "sales-queue", "AzureServiceBus", - (endpointconfiguration, iservicecollection, iconfiguration, ihostenvironment) => global::Demo.Functions.ConfigureProcessOrder(endpointconfiguration, iconfiguration, ihostenvironment), - global::NServiceBus.Configuration.AdvancedExtensibility.AzureServiceBusFunctionsHostApplicationBuilderExtensions.AddNServiceBusAzureServiceBusFunction); - yield break; - } + yield return new global::NServiceBus.FunctionManifest( + "ProcessOrder", "sales-queue", "AzureServiceBus", + (endpointconfiguration, iservicecollection, iconfiguration, ihostenvironment) => global::Demo.Functions.ConfigureProcessOrder(endpointconfiguration, iconfiguration, ihostenvironment), + global::NServiceBus.Configuration.AdvancedExtensibility.AzureServiceBusFunctionsHostApplicationBuilderExtensions.AddNServiceBusAzureServiceBusFunction); + yield break; } } \ No newline at end of file diff --git a/src/Tests.Analyzers/ApprovalFiles/FunctionEndpointGeneratorTests.GeneratesFunctionEndpointInGlobalNamespace.approved.txt b/src/Tests.Analyzers/ApprovalFiles/FunctionEndpointGeneratorTests.GeneratesFunctionEndpointInGlobalNamespace.approved.txt index 729f82c4..ed736d3f 100644 --- a/src/Tests.Analyzers/ApprovalFiles/FunctionEndpointGeneratorTests.GeneratesFunctionEndpointInGlobalNamespace.approved.txt +++ b/src/Tests.Analyzers/ApprovalFiles/FunctionEndpointGeneratorTests.GeneratesFunctionEndpointInGlobalNamespace.approved.txt @@ -1,9 +1,17 @@ // == NServiceBus.AzureFunctions.Analyzer/NServiceBus.AzureFunctions.Analyzer.FunctionEndpointGenerator/FunctionMethodBodies.g.cs == // + +#nullable enable annotations +#nullable disable warnings + +// Suppress warnings about [Obsolete] usage in generated code. +#pragma warning disable CS0612, CS0618 + using Microsoft.Extensions.DependencyInjection; public partial class Functions { + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("NService.Core.Analyzer.Tests", "1.0.0")] public partial global::System.Threading.Tasks.Task Run( global::Azure.Messaging.ServiceBus.ServiceBusReceivedMessage message, global::Microsoft.Azure.Functions.Worker.ServiceBusMessageActions messageActions, @@ -18,20 +26,33 @@ public partial class Functions // == NServiceBus.AzureFunctions.Analyzer/NServiceBus.AzureFunctions.Analyzer.FunctionEndpointGenerator/FunctionRegistration.g.cs == // -namespace NServiceBus.Generated + +#nullable enable annotations +#nullable disable warnings + +// Suppress warnings about [Obsolete] usage in generated code. +#pragma warning disable CS0612, CS0618 + +namespace NServiceBus.Generated; + +/// +/// Registrations for NServiceBus functions in this assembly. +/// +[global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] +[global::NServiceBus.AutoGeneratedFunctionRegistrationsAttribute] +[global::System.CodeDom.Compiler.GeneratedCodeAttribute("NService.Core.Analyzer.Tests", "1.0.0")] +public static class GeneratedFunctionRegistrations_GeneratesFunctionEndpointInGlobalNamespace_1f0b44ddcd47d001 { - [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] - [global::NServiceBus.AutoGeneratedFunctionRegistrationsAttribute] - public static class GeneratedFunctionRegistrations_GeneratesFunctionEndpointInGlobalNamespace_1f0b44ddcd47d001 + /// + /// Gets function manifests for NServiceBus functions in this assembly. + /// + public static global::System.Collections.Generic.IEnumerable + GetFunctionManifests() { - public static global::System.Collections.Generic.IEnumerable - GetFunctionManifests() - { - yield return new global::NServiceBus.FunctionManifest( - "ProcessOrder", "sales-queue", "AzureServiceBus", - (endpointconfiguration, iservicecollection, iconfiguration, ihostenvironment) => global::Functions.ConfigureProcessOrder(endpointconfiguration, iconfiguration, ihostenvironment), - global::NServiceBus.Configuration.AdvancedExtensibility.AzureServiceBusFunctionsHostApplicationBuilderExtensions.AddNServiceBusAzureServiceBusFunction); - yield break; - } + yield return new global::NServiceBus.FunctionManifest( + "ProcessOrder", "sales-queue", "AzureServiceBus", + (endpointconfiguration, iservicecollection, iconfiguration, ihostenvironment) => global::Functions.ConfigureProcessOrder(endpointconfiguration, iconfiguration, ihostenvironment), + global::NServiceBus.Configuration.AdvancedExtensibility.AzureServiceBusFunctionsHostApplicationBuilderExtensions.AddNServiceBusAzureServiceBusFunction); + yield break; } } \ No newline at end of file