| File: test\Generators\Microsoft.Gen.Logging\TestClasses\SignatureTestExtensions.cs | Web Access |
| Project: src\test\Generators\Microsoft.Gen.Logging\Generated\Microsoft.Gen.Logging.Generated.Tests.csproj (Microsoft.Gen.Logging.Generated.Tests) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Diagnostics.CodeAnalysis; using Microsoft.Extensions.Logging; namespace TestClasses { // test that particular method signature variations are generated correctly internal static partial class SignatureTestExtensions { // extension method [LoggerMessage(eventId: 10, level: LogLevel.Critical, message: "Message11")] internal static partial void M11(this ILogger logger); // optional parameter [LoggerMessage(1, LogLevel.Debug, "{p1} {p2}")] internal static partial void M2(ILogger logger, string p1, string p2 = "World"); // parameter name potentially conflicting with generated symbol name [LoggerMessage(2, LogLevel.Debug, "{helper}")] internal static partial void M3(ILogger logger, string helper); } // test that particular method signature variations are generated correctly [SuppressMessage("Design", "CA1052:Static holder types should be Static or NotInheritable", Justification = "Needed for reflection")] internal partial class SignatureTestExtensions<T> where T : class { public static void Combo(ILogger logger, ILogger<int> logger2) { M1(logger); M2(logger); M3(logger); M4(logger2); M5(logger, new[] { "A" }); M6(logger); M8(logger); M9(logger); M10(logger, null); M11(logger, "A", LogLevel.Debug, "B"); } // normal public method [LoggerMessage(0, LogLevel.Critical, "Message1")] public static partial void M1(ILogger logger); // internal method [LoggerMessage(1, LogLevel.Critical, "Message2")] internal static partial void M2(ILogger logger); // private method [LoggerMessage(2, LogLevel.Critical, "Message3")] private static partial void M3(ILogger logger); // generic ILogger [LoggerMessage(3, LogLevel.Critical, "Message4")] private static partial void M4(ILogger<int> logger); // random type method parameter [LoggerMessage(4, LogLevel.Critical, "Message5 {items}")] private static partial void M5(ILogger logger, System.Collections.IEnumerable items); // line feeds and quotes in the message string [LoggerMessage(5, LogLevel.Critical, "Message6\n\"\r")] private static partial void M6(ILogger logger); // generic parameter [LoggerMessage(6, LogLevel.Critical, "Message7 {p1}\n\"\r")] private static partial void M7(ILogger logger, T p1); // normal public method [LoggerMessage(7, LogLevel.Critical, "Message8")] private protected static partial void M8(ILogger logger); // internal method [LoggerMessage(8, LogLevel.Critical, "Message9")] protected internal static partial void M9(ILogger logger); // nullable parameter [LoggerMessage(9, LogLevel.Critical, "Message10 {optional}")] internal static partial void M10(ILogger logger, string? optional); // dynamic log level [LoggerMessage("Message11 {p1} {p2}")] internal static partial void M11(ILogger logger, string p1, LogLevel level, string p2); } }