File: test\Generators\Microsoft.Gen.Logging\TestClasses\LogPropertiesOmitParameterNameExtensions.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 Microsoft.Extensions.Logging;
 
namespace TestClasses
{
    internal static partial class LogPropertiesOmitParameterNameExtensions
    {
        internal class MyProps
        {
            public int P0 { get; set; }
 
            public string? P1 { get; set; }
        }
 
        [LoggerMessage(LogLevel.Debug)]
        public static partial void M0(ILogger logger, [LogProperties(OmitReferenceName = true)] MyProps p);
 
        [LoggerMessage(LogLevel.Warning)]
        public static partial void M1(
            ILogger logger,
            [TagProvider(typeof(MyPropsProvider), nameof(MyPropsProvider.ProvideProperties), OmitReferenceName = true)] MyProps p);
 
        [LoggerMessage]
        internal static partial void M2(
            ILogger logger,
            LogLevel level,
            [LogProperties(OmitReferenceName = true)] MyProps param);
 
        [LoggerMessage]
        internal static partial void M3(
            ILogger logger,
            LogLevel level,
            [TagProvider(typeof(MyPropsProvider), nameof(MyPropsProvider.ProvideProperties), OmitReferenceName = true)] MyProps p);
 
        internal static class MyPropsProvider
        {
            public static void ProvideProperties(ITagCollector list, MyProps? param)
            {
                list.Add(nameof(MyProps.P0), param?.P0);
                list.Add("Custom_property_name", param?.P1);
            }
        }
    }
}