From 01cfe3e1779b9024f7f46124c0088678ac8a45cb Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Fri, 5 May 2023 14:59:43 -0700 Subject: [PATCH 01/21] Restore missing API from Extensions --- .../Microsoft.Extensions.Caching.Memory.cs | 2 + .../src/MemoryCacheOptions.cs | 3 + .../ref/Microsoft.Extensions.Configuration.cs | 1 + .../src/ConfigurationSection.cs | 8 ++ ...crosoft.Extensions.Hosting.Abstractions.cs | 12 +- .../src/IApplicationLifetime.cs | 28 +--- .../src/IHostingEnvironment.cs | 26 +--- .../ref/Microsoft.Extensions.Hosting.cs | 2 + .../src/Internal/ConsoleLifetime.cs | 4 + ...crosoft.Extensions.Logging.Abstractions.cs | 38 +++++ .../src/Obsolete.cs | 58 ++++++++ .../Microsoft.Extensions.Logging.Console.cs | 118 ++++++++++++++++ ...icrosoft.Extensions.Logging.Console.csproj | 1 + .../src/ConsoleLogger.cs | 4 +- .../src/ConsoleLoggerExtensions.cs | 24 ++++ .../src/ConsoleLoggerProvider.cs | 9 ++ .../src/Obsolete.cs | 130 +++++++++++++++++ .../ref/Microsoft.Extensions.Logging.Debug.cs | 14 ++ .../src/DebugLogger.cs | 4 +- .../src/DebugLogger.debug.cs | 2 +- .../src/DebugLoggerFactoryExtensions.cs | 9 ++ .../Microsoft.Extensions.Logging.EventLog.cs | 37 +++++ ...crosoft.Extensions.Logging.EventLog.csproj | 4 + .../src/EventLogLogger.cs | 6 +- .../src/EventLogSettings.cs | 6 +- .../src/EventLoggerFactoryExtensions.cs | 11 ++ .../src/IEventLog.cs | 6 +- .../src/WindowsEventLog.cs | 4 +- ...icrosoft.Extensions.Logging.EventSource.cs | 2 + .../src/EventSourceLoggerFactoryExtensions.cs | 3 + ...icrosoft.Extensions.Logging.TraceSource.cs | 22 +++ .../src/TraceSourceFactoryExtensions.cs | 12 ++ .../src/TraceSourceLogger.cs | 4 +- .../src/TraceSourceScope.cs | 4 +- .../ref/Microsoft.Extensions.Options.cs | 6 + .../src/OptionsWrapper.cs | 30 ++++ .../ref/Microsoft.Extensions.Primitives.cs | 13 ++ .../src/InplaceStringBuilder.cs | 133 ++++++++++++++++++ 38 files changed, 728 insertions(+), 72 deletions(-) create mode 100644 src/libraries/Microsoft.Extensions.Logging.Abstractions/src/Obsolete.cs create mode 100644 src/libraries/Microsoft.Extensions.Logging.Console/src/Obsolete.cs create mode 100644 src/libraries/Microsoft.Extensions.Primitives/src/InplaceStringBuilder.cs diff --git a/src/libraries/Microsoft.Extensions.Caching.Memory/ref/Microsoft.Extensions.Caching.Memory.cs b/src/libraries/Microsoft.Extensions.Caching.Memory/ref/Microsoft.Extensions.Caching.Memory.cs index 7a13cdf999acb7..d384a18fd99500 100644 --- a/src/libraries/Microsoft.Extensions.Caching.Memory/ref/Microsoft.Extensions.Caching.Memory.cs +++ b/src/libraries/Microsoft.Extensions.Caching.Memory/ref/Microsoft.Extensions.Caching.Memory.cs @@ -42,6 +42,8 @@ public partial class MemoryCacheOptions : Microsoft.Extensions.Options.IOptions< public MemoryCacheOptions() { } public Microsoft.Extensions.Internal.ISystemClock? Clock { get { throw null; } set { } } public double CompactionPercentage { get { throw null; } set { } } + [System.Obsolete("This is obsolete and will be removed in a future version.")] + public bool CompactOnMemoryPressure { get; set; } public System.TimeSpan ExpirationScanFrequency { get { throw null; } set { } } Microsoft.Extensions.Caching.Memory.MemoryCacheOptions Microsoft.Extensions.Options.IOptions.Value { get { throw null; } } public long? SizeLimit { get { throw null; } set { } } diff --git a/src/libraries/Microsoft.Extensions.Caching.Memory/src/MemoryCacheOptions.cs b/src/libraries/Microsoft.Extensions.Caching.Memory/src/MemoryCacheOptions.cs index efb5b197d9378c..6c723b59bb439d 100644 --- a/src/libraries/Microsoft.Extensions.Caching.Memory/src/MemoryCacheOptions.cs +++ b/src/libraries/Microsoft.Extensions.Caching.Memory/src/MemoryCacheOptions.cs @@ -42,6 +42,9 @@ public long? SizeLimit } } + [System.Obsolete("This is obsolete and will be removed in a future version.")] + public bool CompactOnMemoryPressure { get; set; } + /// /// Gets or sets the amount to compact the cache by when the maximum size is exceeded. /// diff --git a/src/libraries/Microsoft.Extensions.Configuration/ref/Microsoft.Extensions.Configuration.cs b/src/libraries/Microsoft.Extensions.Configuration/ref/Microsoft.Extensions.Configuration.cs index b5c18ee34b897c..db0332a342f015 100644 --- a/src/libraries/Microsoft.Extensions.Configuration/ref/Microsoft.Extensions.Configuration.cs +++ b/src/libraries/Microsoft.Extensions.Configuration/ref/Microsoft.Extensions.Configuration.cs @@ -92,6 +92,7 @@ public void Reload() { } } public partial class ConfigurationSection : Microsoft.Extensions.Configuration.IConfiguration, Microsoft.Extensions.Configuration.IConfigurationSection { + public ConfigurationSection(Microsoft.Extensions.Configuration.ConfigurationRoot root, string path) { } public ConfigurationSection(Microsoft.Extensions.Configuration.IConfigurationRoot root, string path) { } public string? this[string key] { get { throw null; } set { } } public string Key { get { throw null; } } diff --git a/src/libraries/Microsoft.Extensions.Configuration/src/ConfigurationSection.cs b/src/libraries/Microsoft.Extensions.Configuration/src/ConfigurationSection.cs index 270fcabb168987..cc5e65e1e545af 100644 --- a/src/libraries/Microsoft.Extensions.Configuration/src/ConfigurationSection.cs +++ b/src/libraries/Microsoft.Extensions.Configuration/src/ConfigurationSection.cs @@ -33,6 +33,14 @@ public ConfigurationSection(IConfigurationRoot root, string path) _path = path; } + /// + /// Initializes a new instance. + /// + /// The configuration root. + /// The path to this section. + public ConfigurationSection(ConfigurationRoot root, string path) : this((IConfigurationRoot)root, path) + { } + /// /// Gets the full path to this section from the . /// diff --git a/src/libraries/Microsoft.Extensions.Hosting.Abstractions/ref/Microsoft.Extensions.Hosting.Abstractions.cs b/src/libraries/Microsoft.Extensions.Hosting.Abstractions/ref/Microsoft.Extensions.Hosting.Abstractions.cs index b4d493695f125e..6581bb113e5e96 100644 --- a/src/libraries/Microsoft.Extensions.Hosting.Abstractions/ref/Microsoft.Extensions.Hosting.Abstractions.cs +++ b/src/libraries/Microsoft.Extensions.Hosting.Abstractions/ref/Microsoft.Extensions.Hosting.Abstractions.cs @@ -84,12 +84,8 @@ public static partial class HostingEnvironmentExtensions public static bool IsStaging(this Microsoft.Extensions.Hosting.IHostingEnvironment hostingEnvironment) { throw null; } } [System.ObsoleteAttribute("IApplicationLifetime has been deprecated. Use Microsoft.Extensions.Hosting.IHostApplicationLifetime instead.")] - public partial interface IApplicationLifetime + public partial interface IApplicationLifetime : Microsoft.Extensions.Hosting.IHostApplicationLifetime { - System.Threading.CancellationToken ApplicationStarted { get; } - System.Threading.CancellationToken ApplicationStopped { get; } - System.Threading.CancellationToken ApplicationStopping { get; } - void StopApplication(); } public partial interface IHost : System.IDisposable { @@ -128,12 +124,8 @@ public partial interface IHostEnvironment string EnvironmentName { get; set; } } [System.ObsoleteAttribute("IHostingEnvironment has been deprecated. Use Microsoft.Extensions.Hosting.IHostEnvironment instead.")] - public partial interface IHostingEnvironment + public partial interface IHostingEnvironment : Microsoft.Extensions.Hosting.IHostEnvironment { - string ApplicationName { get; set; } - Microsoft.Extensions.FileProviders.IFileProvider ContentRootFileProvider { get; set; } - string ContentRootPath { get; set; } - string EnvironmentName { get; set; } } public partial interface IHostLifetime { diff --git a/src/libraries/Microsoft.Extensions.Hosting.Abstractions/src/IApplicationLifetime.cs b/src/libraries/Microsoft.Extensions.Hosting.Abstractions/src/IApplicationLifetime.cs index 326feb0458bc0d..041044d3551d71 100644 --- a/src/libraries/Microsoft.Extensions.Hosting.Abstractions/src/IApplicationLifetime.cs +++ b/src/libraries/Microsoft.Extensions.Hosting.Abstractions/src/IApplicationLifetime.cs @@ -14,30 +14,6 @@ namespace Microsoft.Extensions.Hosting /// /// [Obsolete("IApplicationLifetime has been deprecated. Use Microsoft.Extensions.Hosting.IHostApplicationLifetime instead.")] - public interface IApplicationLifetime - { - /// - /// Triggered when the application host has fully started and is about to wait - /// for a graceful shutdown. - /// - CancellationToken ApplicationStarted { get; } - - /// - /// Triggered when the application host is performing a graceful shutdown. - /// Requests may still be in flight. Shutdown will block until this event completes. - /// - CancellationToken ApplicationStopping { get; } - - /// - /// Triggered when the application host is performing a graceful shutdown. - /// All requests should be complete at this point. Shutdown will block - /// until this event completes. - /// - CancellationToken ApplicationStopped { get; } - - /// - /// Requests termination of the current application. - /// - void StopApplication(); - } + public interface IApplicationLifetime : IHostApplicationLifetime + { } } diff --git a/src/libraries/Microsoft.Extensions.Hosting.Abstractions/src/IHostingEnvironment.cs b/src/libraries/Microsoft.Extensions.Hosting.Abstractions/src/IHostingEnvironment.cs index af94ab7c1b59c3..7d2747bc2fcda2 100644 --- a/src/libraries/Microsoft.Extensions.Hosting.Abstractions/src/IHostingEnvironment.cs +++ b/src/libraries/Microsoft.Extensions.Hosting.Abstractions/src/IHostingEnvironment.cs @@ -14,28 +14,6 @@ namespace Microsoft.Extensions.Hosting /// /// [Obsolete("IHostingEnvironment has been deprecated. Use Microsoft.Extensions.Hosting.IHostEnvironment instead.")] - public interface IHostingEnvironment - { - /// - /// Gets or sets the name of the environment. The host automatically sets this property to the value of the - /// of the "environment" key as specified in configuration. - /// - string EnvironmentName { get; set; } - - /// - /// Gets or sets the name of the application. This property is automatically set by the host to the assembly containing - /// the application entry point. - /// - string ApplicationName { get; set; } - - /// - /// Gets or sets the absolute path to the directory that contains the application content files. - /// - string ContentRootPath { get; set; } - - /// - /// Gets or sets an pointing at . - /// - IFileProvider ContentRootFileProvider { get; set; } - } + public interface IHostingEnvironment : IHostEnvironment + { } } diff --git a/src/libraries/Microsoft.Extensions.Hosting/ref/Microsoft.Extensions.Hosting.cs b/src/libraries/Microsoft.Extensions.Hosting/ref/Microsoft.Extensions.Hosting.cs index d8820aa7133668..e6bf2958e0ef20 100644 --- a/src/libraries/Microsoft.Extensions.Hosting/ref/Microsoft.Extensions.Hosting.cs +++ b/src/libraries/Microsoft.Extensions.Hosting/ref/Microsoft.Extensions.Hosting.cs @@ -130,6 +130,8 @@ public partial class ConsoleLifetime : Microsoft.Extensions.Hosting.IHostLifetim { public ConsoleLifetime(Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Hosting.IHostEnvironment environment, Microsoft.Extensions.Hosting.IHostApplicationLifetime applicationLifetime, Microsoft.Extensions.Options.IOptions hostOptions) { } public ConsoleLifetime(Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Hosting.IHostEnvironment environment, Microsoft.Extensions.Hosting.IHostApplicationLifetime applicationLifetime, Microsoft.Extensions.Options.IOptions hostOptions, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { } + [System.ObsoleteAttribute("IHostingEnvironment and IApplicationLifetime have been deprecated. Use Microsoft.Extensions.Hosting.IHostEnvironment and IHostApplicationLifetime instead.")] + public ConsoleLifetime(Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Hosting.IHostingEnvironment environment, Microsoft.Extensions.Hosting.IApplicationLifetime applicationLifetime) { } public void Dispose() { } public System.Threading.Tasks.Task StopAsync(System.Threading.CancellationToken cancellationToken) { throw null; } public System.Threading.Tasks.Task WaitForStartAsync(System.Threading.CancellationToken cancellationToken) { throw null; } diff --git a/src/libraries/Microsoft.Extensions.Hosting/src/Internal/ConsoleLifetime.cs b/src/libraries/Microsoft.Extensions.Hosting/src/Internal/ConsoleLifetime.cs index 372a6146c55d25..99e74d7a11b3b4 100644 --- a/src/libraries/Microsoft.Extensions.Hosting/src/Internal/ConsoleLifetime.cs +++ b/src/libraries/Microsoft.Extensions.Hosting/src/Internal/ConsoleLifetime.cs @@ -23,6 +23,10 @@ public partial class ConsoleLifetime : IHostLifetime, IDisposable private CancellationTokenRegistration _applicationStartedRegistration; private CancellationTokenRegistration _applicationStoppingRegistration; + [Obsolete("IHostingEnvironment and IApplicationLifetime have been deprecated. Use Microsoft.Extensions.Hosting.IHostEnvironment and IHostApplicationLifetime instead.")] + public ConsoleLifetime(IOptions options, IHostingEnvironment environment, IApplicationLifetime applicationLifetime) + : this (options, environment, applicationLifetime, new OptionsWrapper(new HostOptions())) { } + public ConsoleLifetime(IOptions options, IHostEnvironment environment, IHostApplicationLifetime applicationLifetime, IOptions hostOptions) : this(options, environment, applicationLifetime, hostOptions, NullLoggerFactory.Instance) { } diff --git a/src/libraries/Microsoft.Extensions.Logging.Abstractions/ref/Microsoft.Extensions.Logging.Abstractions.cs b/src/libraries/Microsoft.Extensions.Logging.Abstractions/ref/Microsoft.Extensions.Logging.Abstractions.cs index 72e6ae6afce77a..efc247563b74a6 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Abstractions/ref/Microsoft.Extensions.Logging.Abstractions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Abstractions/ref/Microsoft.Extensions.Logging.Abstractions.cs @@ -196,3 +196,41 @@ public NullLogger() { } public void Log(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, TState state, System.Exception? exception, System.Func formatter) { } } } +namespace Microsoft.Extensions.Logging.Abstractions.Internal +{ + [System.ObsoleteAttribute("TODO")] + public partial class NullScope + { + internal NullScope() { } + public static Microsoft.Extensions.Logging.Abstractions.Internal.NullScope Instance { get { throw null; } } + public void Dispose() { } + } + [System.ObsoleteAttribute("TODO")] + public partial class TypeNameHelper + { + public TypeNameHelper() { } + public static string GetTypeDisplayName(System.Type type) { throw null; } + } +} +namespace Microsoft.Extensions.Logging.Internal +{ + [System.ObsoleteAttribute("TODO")] + public partial class FormattedLogValues + { + public FormattedLogValues(string format, params object[] values) { } + public int Count { get { throw null; } } + public System.Collections.Generic.KeyValuePair this[int index] { get { throw null; } } + public System.Collections.Generic.IEnumerator> GetEnumerator() { throw null; } + public override string ToString() { throw null; } + } + [System.ObsoleteAttribute("TODO")] + public partial class LogValuesFormatter + { + public LogValuesFormatter(string format) { } + public string OriginalFormat { get { throw null; } } + public System.Collections.Generic.List ValueNames { get { throw null; } } + public string Format(object[] values) { throw null; } + public System.Collections.Generic.KeyValuePair GetValue(object[] values, int index) { throw null; } + public System.Collections.Generic.IEnumerable> GetValues(object[] values) { throw null; } + } +} diff --git a/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/Obsolete.cs b/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/Obsolete.cs new file mode 100644 index 00000000000000..a7eba26dba81e8 --- /dev/null +++ b/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/Obsolete.cs @@ -0,0 +1,58 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; + +namespace Microsoft.Extensions.Logging.Abstractions.Internal +{ + [System.Obsolete("TODO")] + public partial class NullScope + { + internal NullScope() { } + + public static NullScope Instance { get { throw new NotImplementedException(); } } + + public void Dispose() { } + } + + [System.Obsolete("TODO")] + public partial class TypeNameHelper + { + public TypeNameHelper() { } + + public static string GetTypeDisplayName(System.Type type) { throw new NotImplementedException(); } + } +} + +namespace Microsoft.Extensions.Logging.Internal +{ + [System.Obsolete("TODO")] + public partial class FormattedLogValues + { + public FormattedLogValues(string format, params object[] values) { } + + public int Count { get { throw new NotImplementedException(); } } + + public System.Collections.Generic.KeyValuePair this[int index] { get { throw new NotImplementedException(); } } + + public System.Collections.Generic.IEnumerator> GetEnumerator() { throw new NotImplementedException(); } + + public override string ToString() { throw new NotImplementedException(); } + } + + [System.Obsolete("TODO")] + public partial class LogValuesFormatter + { + public LogValuesFormatter(string format) { } + + public string OriginalFormat { get { throw new NotImplementedException(); } } + + public System.Collections.Generic.List ValueNames { get { throw new NotImplementedException(); } } + + public string Format(object[] values) { throw new NotImplementedException(); } + + public System.Collections.Generic.KeyValuePair GetValue(object[] values, int index) { throw new NotImplementedException(); } + + public System.Collections.Generic.IEnumerable> GetValues(object[] values) { throw new NotImplementedException(); } + } +} diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.cs b/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.cs index 0941865d6e3db9..299d3b43b387cf 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.cs @@ -9,6 +9,22 @@ namespace Microsoft.Extensions.Logging [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static partial class ConsoleLoggerExtensions { + [System.ObsoleteAttribute("TODO")] + public static Microsoft.Extensions.Logging.ILoggerFactory AddConsole(this Microsoft.Extensions.Logging.ILoggerFactory factory) { throw null; } + [System.ObsoleteAttribute("TODO")] + public static Microsoft.Extensions.Logging.ILoggerFactory AddConsole(this Microsoft.Extensions.Logging.ILoggerFactory factory, Microsoft.Extensions.Configuration.IConfiguration configuration) { throw null; } + [System.ObsoleteAttribute("TODO")] + public static Microsoft.Extensions.Logging.ILoggerFactory AddConsole(this Microsoft.Extensions.Logging.ILoggerFactory factory, Microsoft.Extensions.Logging.Console.IConsoleLoggerSettings settings) { throw null; } + [System.ObsoleteAttribute("TODO")] + public static Microsoft.Extensions.Logging.ILoggerFactory AddConsole(this Microsoft.Extensions.Logging.ILoggerFactory factory, Microsoft.Extensions.Logging.LogLevel minLevel) { throw null; } + [System.ObsoleteAttribute("TODO")] + public static Microsoft.Extensions.Logging.ILoggerFactory AddConsole(this Microsoft.Extensions.Logging.ILoggerFactory factory, Microsoft.Extensions.Logging.LogLevel minLevel, bool includeScopes) { throw null; } + [System.ObsoleteAttribute("TODO")] + public static Microsoft.Extensions.Logging.ILoggerFactory AddConsole(this Microsoft.Extensions.Logging.ILoggerFactory factory, bool includeScopes) { throw null; } + [System.ObsoleteAttribute("TODO")] + public static Microsoft.Extensions.Logging.ILoggerFactory AddConsole(this Microsoft.Extensions.Logging.ILoggerFactory factory, System.Func filter) { throw null; } + [System.ObsoleteAttribute("TODO")] + public static Microsoft.Extensions.Logging.ILoggerFactory AddConsole(this Microsoft.Extensions.Logging.ILoggerFactory factory, System.Func filter, bool includeScopes) { throw null; } public static Microsoft.Extensions.Logging.ILoggingBuilder AddConsole(this Microsoft.Extensions.Logging.ILoggingBuilder builder) { throw null; } public static Microsoft.Extensions.Logging.ILoggingBuilder AddConsole(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Action configure) { throw null; } [System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute("Binding TOptions to configuration values may require generating dynamic code at runtime.")] @@ -27,6 +43,15 @@ public static partial class ConsoleLoggerExtensions } namespace Microsoft.Extensions.Logging.Console { + [System.ObsoleteAttribute("TODO")] + public partial class ConfigurationConsoleLoggerSettings : Microsoft.Extensions.Logging.Console.IConsoleLoggerSettings + { + public ConfigurationConsoleLoggerSettings(Microsoft.Extensions.Configuration.IConfiguration configuration) { } + public Microsoft.Extensions.Primitives.IChangeToken ChangeToken { get { throw null; } } + public bool IncludeScopes { get { throw null; } } + public Microsoft.Extensions.Logging.Console.IConsoleLoggerSettings Reload() { throw null; } + public bool TryGetSwitch(string name, out Microsoft.Extensions.Logging.LogLevel level) { throw null; } + } public abstract partial class ConsoleFormatter { protected ConsoleFormatter(string name) { } @@ -47,6 +72,15 @@ public ConsoleFormatterOptions() { } public string? TimestampFormat { get { throw null; } set { } } public bool UseUtcTimestamp { get { throw null; } set { } } } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] + public sealed partial class ConsoleLogger : Microsoft.Extensions.Logging.ILogger + { + internal ConsoleLogger() { } + public System.IDisposable BeginScope(TState state) where TState : notnull { throw null; } + public bool IsEnabled(Microsoft.Extensions.Logging.LogLevel logLevel) { throw null; } + public void Log(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, TState state, System.Exception? exception, System.Func formatter) { } + } [System.ObsoleteAttribute("ConsoleLoggerFormat has been deprecated.")] public enum ConsoleLoggerFormat { @@ -75,8 +109,14 @@ public ConsoleLoggerOptions() { } [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public partial class ConsoleLoggerProvider : Microsoft.Extensions.Logging.ILoggerProvider, Microsoft.Extensions.Logging.ISupportExternalScope, System.IDisposable { + [System.ObsoleteAttribute("TODO")] + public ConsoleLoggerProvider(Microsoft.Extensions.Logging.Console.IConsoleLoggerSettings settings) { } public ConsoleLoggerProvider(Microsoft.Extensions.Options.IOptionsMonitor options) { } public ConsoleLoggerProvider(Microsoft.Extensions.Options.IOptionsMonitor options, System.Collections.Generic.IEnumerable? formatters) { } + [System.ObsoleteAttribute("TODO")] + public ConsoleLoggerProvider(System.Func filter, bool includeScopes) { } + [System.ObsoleteAttribute("TODO")] + public ConsoleLoggerProvider(System.Func filter, bool includeScopes, bool disableColors) { } public Microsoft.Extensions.Logging.ILogger CreateLogger(string name) { throw null; } public void Dispose() { } public void SetScopeProvider(Microsoft.Extensions.Logging.IExternalScopeProvider scopeProvider) { } @@ -86,6 +126,34 @@ public enum ConsoleLoggerQueueFullMode Wait = 0, DropWrite = 1, } + [System.ObsoleteAttribute("TODO")] + public partial class ConsoleLoggerSettings : Microsoft.Extensions.Logging.Console.IConsoleLoggerSettings + { + public ConsoleLoggerSettings() { } + public Microsoft.Extensions.Primitives.IChangeToken ChangeToken { get { throw null; } set { } } + public bool DisableColors { get { throw null; } set { } } + public bool IncludeScopes { get { throw null; } set { } } + public System.Collections.Generic.IDictionary Switches { get { throw null; } set { } } + public Microsoft.Extensions.Logging.Console.IConsoleLoggerSettings Reload() { throw null; } + public bool TryGetSwitch(string name, out Microsoft.Extensions.Logging.LogLevel level) { throw null; } + } + [System.ObsoleteAttribute("TODO")] + public partial class ConsoleLogScope + { + internal ConsoleLogScope() { } + public static Microsoft.Extensions.Logging.Console.ConsoleLogScope Current { get { throw null; } set { } } + public Microsoft.Extensions.Logging.Console.ConsoleLogScope Parent { get { throw null; } } + public static System.IDisposable Push(string name, object state) { throw null; } + public override string ToString() { throw null; } + } + [System.ObsoleteAttribute("TODO")] + public partial interface IConsoleLoggerSettings + { + Microsoft.Extensions.Primitives.IChangeToken ChangeToken { get; } + bool IncludeScopes { get; } + Microsoft.Extensions.Logging.Console.IConsoleLoggerSettings Reload(); + bool TryGetSwitch(string name, out Microsoft.Extensions.Logging.LogLevel level); + } public partial class JsonConsoleFormatterOptions : Microsoft.Extensions.Logging.Console.ConsoleFormatterOptions { public JsonConsoleFormatterOptions() { } @@ -104,3 +172,53 @@ public SimpleConsoleFormatterOptions() { } public bool SingleLine { get { throw null; } set { } } } } +namespace Microsoft.Extensions.Logging.Console.Internal +{ + [System.ObsoleteAttribute("TODO")] + public partial class AnsiLogConsole : Microsoft.Extensions.Logging.Console.Internal.IConsole + { + public AnsiLogConsole(Microsoft.Extensions.Logging.Console.Internal.IAnsiSystemConsole systemConsole) { } + public void Flush() { } + public void Write(string message, System.ConsoleColor? background, System.ConsoleColor? foreground) { } + public void WriteLine(string message, System.ConsoleColor? background, System.ConsoleColor? foreground) { } + } + [System.ObsoleteAttribute("TODO")] + public partial class ConsoleLoggerProcessor + { + public Microsoft.Extensions.Logging.Console.Internal.IConsole Console; + public ConsoleLoggerProcessor() { } + public void Dispose() { } + public virtual void EnqueueMessage(Microsoft.Extensions.Logging.Console.Internal.LogMessageEntry message) { } + } + [System.ObsoleteAttribute("TODO")] + public partial interface IAnsiSystemConsole + { + void Write(string message); + void WriteLine(string message); + } + [System.ObsoleteAttribute("TODO")] + public partial interface IConsole + { + void Flush(); + void Write(string message, System.ConsoleColor? background, System.ConsoleColor? foreground); + void WriteLine(string message, System.ConsoleColor? background, System.ConsoleColor? foreground); + } + [System.ObsoleteAttribute("TODO")] + public sealed partial class LogMessageEntry + { + internal LogMessageEntry() { } + public System.ConsoleColor? LevelBackground; + public System.ConsoleColor? LevelForeground; + public string LevelString; + public string Message; + public System.ConsoleColor? MessageColor; + } + [System.ObsoleteAttribute("TODO")] + public partial class WindowsLogConsole : Microsoft.Extensions.Logging.Console.Internal.IConsole + { + public WindowsLogConsole() { } + public void Flush() { } + public void Write(string message, System.ConsoleColor? background, System.ConsoleColor? foreground) { } + public void WriteLine(string message, System.ConsoleColor? background, System.ConsoleColor? foreground) { } + } +} diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.csproj b/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.csproj index 532e6fe9f79a48..441903c79c4317 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.csproj +++ b/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.csproj @@ -21,6 +21,7 @@ + diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLogger.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLogger.cs index 3a542e6063635b..1e8a73c496c95a 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLogger.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLogger.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; +using System.ComponentModel; using System.Diagnostics.CodeAnalysis; using System.IO; using System.Runtime.Versioning; @@ -13,7 +14,8 @@ namespace Microsoft.Extensions.Logging.Console /// A logger that writes messages in the console. /// [UnsupportedOSPlatform("browser")] - internal sealed class ConsoleLogger : ILogger + [EditorBrowsable(EditorBrowsableState.Never)] + public sealed class ConsoleLogger : ILogger { private readonly string _name; private readonly ConsoleLoggerProcessor _queueProcessor; diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.cs index f4ffbe9309f301..8b52fb4f0a283f 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.cs @@ -20,6 +20,30 @@ public static class ConsoleLoggerExtensions internal const string RequiresDynamicCodeMessage = "Binding TOptions to configuration values may require generating dynamic code at runtime."; internal const string TrimmingRequiresUnreferencedCodeMessage = "TOptions's dependent types may have their members trimmed. Ensure all required members are preserved."; + [System.Obsolete("TODO")] + public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory, Extensions.Configuration.IConfiguration configuration) { throw new NotImplementedException(); } + + [System.Obsolete("TODO")] + public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory, Console.IConsoleLoggerSettings settings) { throw new NotImplementedException(); } + + [System.Obsolete("TODO")] + public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory, Logging.LogLevel minLevel, bool includeScopes) { throw new NotImplementedException(); } + + [System.Obsolete("TODO")] + public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory, Logging.LogLevel minLevel) { throw new NotImplementedException(); } + + [System.Obsolete("TODO")] + public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory, bool includeScopes) { throw new NotImplementedException(); } + + [System.Obsolete("TODO")] + public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory, System.Func filter, bool includeScopes) { throw new NotImplementedException(); } + + [System.Obsolete("TODO")] + public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory, System.Func filter) { throw new NotImplementedException(); } + + [System.Obsolete("TODO")] + public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory) { throw new NotImplementedException(); } + /// /// Adds a console logger named 'Console' to the factory. /// diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.cs index f1f96fd6611424..4b1af1ef31badb 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.cs @@ -26,6 +26,15 @@ public class ConsoleLoggerProvider : ILoggerProvider, ISupportExternalScope private readonly IDisposable? _optionsReloadToken; private IExternalScopeProvider _scopeProvider = NullExternalScopeProvider.Instance; + [System.Obsolete("TODO")] + public ConsoleLoggerProvider(IConsoleLoggerSettings settings) { throw new NotImplementedException(); } + + [System.Obsolete("TODO")] + public ConsoleLoggerProvider(System.Func filter, bool includeScopes, bool disableColors) { throw new NotImplementedException(); } + + [System.Obsolete("TODO")] + public ConsoleLoggerProvider(System.Func filter, bool includeScopes) { throw new NotImplementedException(); } + /// /// Creates an instance of . /// diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/Obsolete.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/Obsolete.cs new file mode 100644 index 00000000000000..ed46ce5a11178c --- /dev/null +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/Obsolete.cs @@ -0,0 +1,130 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; + +namespace Microsoft.Extensions.Logging.Console +{ + + [System.Obsolete("TODO")] + public partial class ConfigurationConsoleLoggerSettings : IConsoleLoggerSettings + { + public ConfigurationConsoleLoggerSettings(Extensions.Configuration.IConfiguration configuration) { throw new NotImplementedException(); } + + public Extensions.Primitives.IChangeToken ChangeToken { get { throw new NotImplementedException(); } } + + public bool IncludeScopes { get { throw new NotImplementedException(); } } + + public IConsoleLoggerSettings Reload() { throw new NotImplementedException(); } + + public bool TryGetSwitch(string name, out Logging.LogLevel level) { throw new NotImplementedException(); } + } + + [System.Obsolete("TODO")] + public partial class ConsoleLoggerSettings : IConsoleLoggerSettings + { + public ConsoleLoggerSettings() { throw new NotImplementedException(); } + + public Extensions.Primitives.IChangeToken ChangeToken { get { throw new NotImplementedException(); } set { throw new NotImplementedException(); } } + + public bool DisableColors { get { throw new NotImplementedException(); } set { throw new NotImplementedException(); } } + + public bool IncludeScopes { get { throw new NotImplementedException(); } set { throw new NotImplementedException(); } } + + public System.Collections.Generic.IDictionary Switches { get { throw new NotImplementedException(); } set { throw new NotImplementedException(); } } + + public IConsoleLoggerSettings Reload() { throw new NotImplementedException(); } + + public bool TryGetSwitch(string name, out Logging.LogLevel level) { throw new NotImplementedException(); } + } + + [System.Obsolete("TODO")] + public partial class ConsoleLogScope + { + internal ConsoleLogScope() { throw new NotImplementedException(); } + + public static ConsoleLogScope Current { get { throw new NotImplementedException(); } set { throw new NotImplementedException(); } } + + public ConsoleLogScope Parent { get { throw new NotImplementedException(); } } + + public static System.IDisposable Push(string name, object state) { throw new NotImplementedException(); } + + public override string ToString() { throw new NotImplementedException(); } + } + + [System.Obsolete("TODO")] + public partial interface IConsoleLoggerSettings + { + Extensions.Primitives.IChangeToken ChangeToken { get; } + + bool IncludeScopes { get; } + + IConsoleLoggerSettings Reload(); + bool TryGetSwitch(string name, out Logging.LogLevel level); + } +} + +namespace Microsoft.Extensions.Logging.Console.Internal +{ + [System.Obsolete("TODO")] + public partial class AnsiLogConsole : IConsole + { + public AnsiLogConsole(IAnsiSystemConsole systemConsole) { throw new NotImplementedException(); } + + public void Flush() { throw new NotImplementedException(); } + + public void Write(string message, System.Nullable background, System.Nullable foreground) { throw new NotImplementedException(); } + + public void WriteLine(string message, System.Nullable background, System.Nullable foreground) { throw new NotImplementedException(); } + } + + [System.Obsolete("TODO")] + public partial class ConsoleLoggerProcessor + { + public IConsole Console; + public ConsoleLoggerProcessor() { throw new NotImplementedException(); } + + public void Dispose() { throw new NotImplementedException(); } + + public virtual void EnqueueMessage(LogMessageEntry message) { throw new NotImplementedException(); } + } + + [System.Obsolete("TODO")] + public partial interface IAnsiSystemConsole + { + void Write(string message); + void WriteLine(string message); + } + + [System.Obsolete("TODO")] + public partial interface IConsole + { + void Flush(); + void Write(string message, System.Nullable background, System.Nullable foreground); + void WriteLine(string message, System.Nullable background, System.Nullable foreground); + } + + [System.Obsolete("TODO")] + public sealed partial class LogMessageEntry + { + internal LogMessageEntry() { throw new NotImplementedException(); } + + public System.Nullable LevelBackground; + public System.Nullable LevelForeground; + public string LevelString; + public string Message; + public System.Nullable MessageColor; + } + + [System.Obsolete("TODO")] + public partial class WindowsLogConsole : IConsole + { + public WindowsLogConsole() { throw new NotImplementedException(); } + + public void Flush() { throw new NotImplementedException(); } + + public void Write(string message, System.Nullable background, System.Nullable foreground) { throw new NotImplementedException(); } + + public void WriteLine(string message, System.Nullable background, System.Nullable foreground) { throw new NotImplementedException(); } + } +} diff --git a/src/libraries/Microsoft.Extensions.Logging.Debug/ref/Microsoft.Extensions.Logging.Debug.cs b/src/libraries/Microsoft.Extensions.Logging.Debug/ref/Microsoft.Extensions.Logging.Debug.cs index 4e4fb2d98df06d..410e66c8dfc7ca 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Debug/ref/Microsoft.Extensions.Logging.Debug.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Debug/ref/Microsoft.Extensions.Logging.Debug.cs @@ -8,11 +8,25 @@ namespace Microsoft.Extensions.Logging { public static partial class DebugLoggerFactoryExtensions { + [System.ObsoleteAttribute("This method is obsolete and will be removed in a future version. The recommended alternative is AddDebug(this ILoggingBuilder builder).")] + public static Microsoft.Extensions.Logging.ILoggerFactory AddDebug(this Microsoft.Extensions.Logging.ILoggerFactory factory) { throw null; } + [System.ObsoleteAttribute("This method is obsolete and will be removed in a future version. The recommended alternative is AddDebug(this ILoggingBuilder builder).")] + public static Microsoft.Extensions.Logging.ILoggerFactory AddDebug(this Microsoft.Extensions.Logging.ILoggerFactory factory, Microsoft.Extensions.Logging.LogLevel minLevel) { throw null; } + [System.ObsoleteAttribute("This method is obsolete and will be removed in a future version. The recommended alternative is AddDebug(this ILoggingBuilder builder).")] + public static Microsoft.Extensions.Logging.ILoggerFactory AddDebug(this Microsoft.Extensions.Logging.ILoggerFactory factory, System.Func filter) { throw null; } public static Microsoft.Extensions.Logging.ILoggingBuilder AddDebug(this Microsoft.Extensions.Logging.ILoggingBuilder builder) { throw null; } } } namespace Microsoft.Extensions.Logging.Debug { + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public sealed partial class DebugLogger : Microsoft.Extensions.Logging.ILogger + { + public DebugLogger(string name) { } + public System.IDisposable BeginScope(TState state) where TState : notnull { throw null; } + public bool IsEnabled(Microsoft.Extensions.Logging.LogLevel logLevel) { throw null; } + public void Log(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, TState state, System.Exception? exception, System.Func formatter) { } + } [Microsoft.Extensions.Logging.ProviderAliasAttribute("Debug")] public partial class DebugLoggerProvider : Microsoft.Extensions.Logging.ILoggerProvider, System.IDisposable { diff --git a/src/libraries/Microsoft.Extensions.Logging.Debug/src/DebugLogger.cs b/src/libraries/Microsoft.Extensions.Logging.Debug/src/DebugLogger.cs index f84e641ace3ddd..2d6a2026a3a46a 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Debug/src/DebugLogger.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Debug/src/DebugLogger.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; +using System.ComponentModel; using System.Diagnostics; namespace Microsoft.Extensions.Logging.Debug @@ -9,7 +10,8 @@ namespace Microsoft.Extensions.Logging.Debug /// /// A logger that writes messages in the debug output window only when a debugger is attached. /// - internal sealed partial class DebugLogger : ILogger + [EditorBrowsable(EditorBrowsableState.Never)] + public sealed partial class DebugLogger : ILogger { private readonly string _name; diff --git a/src/libraries/Microsoft.Extensions.Logging.Debug/src/DebugLogger.debug.cs b/src/libraries/Microsoft.Extensions.Logging.Debug/src/DebugLogger.debug.cs index c54d85f4c1f849..0ea739be74c7a8 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Debug/src/DebugLogger.debug.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Debug/src/DebugLogger.debug.cs @@ -8,7 +8,7 @@ namespace Microsoft.Extensions.Logging.Debug { - internal sealed partial class DebugLogger + public sealed partial class DebugLogger { private static void DebugWriteLine(string message, string name) { diff --git a/src/libraries/Microsoft.Extensions.Logging.Debug/src/DebugLoggerFactoryExtensions.cs b/src/libraries/Microsoft.Extensions.Logging.Debug/src/DebugLoggerFactoryExtensions.cs index bf426222c45943..dba874e0e453af 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Debug/src/DebugLoggerFactoryExtensions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Debug/src/DebugLoggerFactoryExtensions.cs @@ -4,6 +4,7 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Logging.Debug; +using System; namespace Microsoft.Extensions.Logging { @@ -12,6 +13,14 @@ namespace Microsoft.Extensions.Logging /// public static class DebugLoggerFactoryExtensions { + [Obsolete("This method is obsolete and will be removed in a future version. The recommended alternative is AddDebug(this ILoggingBuilder builder).")] + public static ILoggerFactory AddDebug(this ILoggerFactory factory, LogLevel minLevel) { throw new NotImplementedException(); } + + [Obsolete("This method is obsolete and will be removed in a future version. The recommended alternative is AddDebug(this ILoggingBuilder builder).")] + public static ILoggerFactory AddDebug(this ILoggerFactory factory, Func filter) { throw new NotImplementedException(); } + + [Obsolete("This method is obsolete and will be removed in a future version. The recommended alternative is AddDebug(this ILoggingBuilder builder).")] + public static ILoggerFactory AddDebug(this ILoggerFactory factory) { throw new NotImplementedException(); } /// /// Adds a debug logger named 'Debug' to the factory. /// diff --git a/src/libraries/Microsoft.Extensions.Logging.EventLog/ref/Microsoft.Extensions.Logging.EventLog.cs b/src/libraries/Microsoft.Extensions.Logging.EventLog/ref/Microsoft.Extensions.Logging.EventLog.cs index 523a34dc137dc5..77f3e07028b39b 100644 --- a/src/libraries/Microsoft.Extensions.Logging.EventLog/ref/Microsoft.Extensions.Logging.EventLog.cs +++ b/src/libraries/Microsoft.Extensions.Logging.EventLog/ref/Microsoft.Extensions.Logging.EventLog.cs @@ -8,6 +8,12 @@ namespace Microsoft.Extensions.Logging { public static partial class EventLoggerFactoryExtensions { + [System.ObsoleteAttribute("This method is obsolete and will be removed in a future version. The recommended alternative is AddEventLog(this ILoggingBuilder builder).")] + public static Microsoft.Extensions.Logging.ILoggerFactory AddEventLog(this Microsoft.Extensions.Logging.ILoggerFactory factory) { throw null; } + [System.ObsoleteAttribute("This method is obsolete and will be removed in a future version. The recommended alternative is AddEventLog(this ILoggingBuilder builder).")] + public static Microsoft.Extensions.Logging.ILoggerFactory AddEventLog(this Microsoft.Extensions.Logging.ILoggerFactory factory, Microsoft.Extensions.Logging.EventLog.EventLogSettings settings) { throw null; } + [System.ObsoleteAttribute("This method is obsolete and will be removed in a future version. The recommended alternative is AddEventLog(this ILoggingBuilder builder).")] + public static Microsoft.Extensions.Logging.ILoggerFactory AddEventLog(this Microsoft.Extensions.Logging.ILoggerFactory factory, Microsoft.Extensions.Logging.LogLevel minLevel) { throw null; } public static Microsoft.Extensions.Logging.ILoggingBuilder AddEventLog(this Microsoft.Extensions.Logging.ILoggingBuilder builder) { throw null; } public static Microsoft.Extensions.Logging.ILoggingBuilder AddEventLog(this Microsoft.Extensions.Logging.ILoggingBuilder builder, Microsoft.Extensions.Logging.EventLog.EventLogSettings settings) { throw null; } public static Microsoft.Extensions.Logging.ILoggingBuilder AddEventLog(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Action configure) { throw null; } @@ -15,6 +21,15 @@ public static partial class EventLoggerFactoryExtensions } namespace Microsoft.Extensions.Logging.EventLog { + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public sealed partial class EventLogLogger : Microsoft.Extensions.Logging.ILogger + { + public EventLogLogger(string name, Microsoft.Extensions.Logging.EventLog.EventLogSettings settings, Microsoft.Extensions.Logging.IExternalScopeProvider? externalScopeProvider) { } + public Microsoft.Extensions.Logging.EventLog.Internal.IEventLog EventLog { get { throw null; } } + public System.IDisposable? BeginScope(TState state) where TState : notnull { throw null; } + public bool IsEnabled(Microsoft.Extensions.Logging.LogLevel logLevel) { throw null; } + public void Log(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, TState state, System.Exception? exception, System.Func formatter) { } + } [Microsoft.Extensions.Logging.ProviderAliasAttribute("EventLog")] public partial class EventLogLoggerProvider : Microsoft.Extensions.Logging.ILoggerProvider, Microsoft.Extensions.Logging.ISupportExternalScope, System.IDisposable { @@ -28,9 +43,31 @@ public void SetScopeProvider(Microsoft.Extensions.Logging.IExternalScopeProvider public partial class EventLogSettings { public EventLogSettings() { } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public Microsoft.Extensions.Logging.EventLog.Internal.IEventLog EventLog { get { throw null; } set { } } public System.Func? Filter { get { throw null; } set { } } public string? LogName { get { throw null; } set { } } public string? MachineName { get { throw null; } set { } } public string? SourceName { get { throw null; } set { } } } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] + public sealed partial class WindowsEventLog : Microsoft.Extensions.Logging.EventLog.Internal.IEventLog + { + public WindowsEventLog(string logName, string machineName, string sourceName) { } + public int? DefaultEventId { get { throw null; } set { } } + public System.Diagnostics.EventLog DiagnosticsEventLog { get { throw null; } } + public int MaxMessageSize { get { throw null; } } + public void WriteEntry(string message, System.Diagnostics.EventLogEntryType type, int eventID, short category) { } + } +} +namespace Microsoft.Extensions.Logging.EventLog.Internal +{ + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public partial interface IEventLog + { + int? DefaultEventId { get; } + int MaxMessageSize { get; } + void WriteEntry(string message, System.Diagnostics.EventLogEntryType type, int eventID, short category); + } } diff --git a/src/libraries/Microsoft.Extensions.Logging.EventLog/ref/Microsoft.Extensions.Logging.EventLog.csproj b/src/libraries/Microsoft.Extensions.Logging.EventLog/ref/Microsoft.Extensions.Logging.EventLog.csproj index 400910cffffb6b..2e3ede95ad5529 100644 --- a/src/libraries/Microsoft.Extensions.Logging.EventLog/ref/Microsoft.Extensions.Logging.EventLog.csproj +++ b/src/libraries/Microsoft.Extensions.Logging.EventLog/ref/Microsoft.Extensions.Logging.EventLog.csproj @@ -12,4 +12,8 @@ + + + + diff --git a/src/libraries/Microsoft.Extensions.Logging.EventLog/src/EventLogLogger.cs b/src/libraries/Microsoft.Extensions.Logging.EventLog/src/EventLogLogger.cs index a5d6e6a6a3c5ad..a0983885d0dc83 100644 --- a/src/libraries/Microsoft.Extensions.Logging.EventLog/src/EventLogLogger.cs +++ b/src/libraries/Microsoft.Extensions.Logging.EventLog/src/EventLogLogger.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; +using System.ComponentModel; using System.Collections.Generic; using System.Diagnostics; using System.Text; @@ -11,7 +12,8 @@ namespace Microsoft.Extensions.Logging.EventLog /// /// A logger that writes messages to Windows Event Log. /// - internal sealed class EventLogLogger : ILogger + [EditorBrowsable(EditorBrowsableState.Never)] + public sealed class EventLogLogger : ILogger { private readonly string _name; private readonly EventLogSettings _settings; @@ -51,7 +53,7 @@ public EventLogLogger(string name, EventLogSettings settings, IExternalScopeProv /// /// The event log. /// - public IEventLog EventLog { get; } + public Internal.IEventLog EventLog { get; } /// public IDisposable? BeginScope(TState state) where TState : notnull diff --git a/src/libraries/Microsoft.Extensions.Logging.EventLog/src/EventLogSettings.cs b/src/libraries/Microsoft.Extensions.Logging.EventLog/src/EventLogSettings.cs index ea5b4340f6c75b..8bff64a05f08c5 100644 --- a/src/libraries/Microsoft.Extensions.Logging.EventLog/src/EventLogSettings.cs +++ b/src/libraries/Microsoft.Extensions.Logging.EventLog/src/EventLogSettings.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; +using System.ComponentModel; namespace Microsoft.Extensions.Logging.EventLog { @@ -10,7 +11,7 @@ namespace Microsoft.Extensions.Logging.EventLog /// public class EventLogSettings { - private IEventLog? _eventLog; + private Internal.IEventLog? _eventLog; /// /// Name of the event log. If null or not specified, "Application" is the default. @@ -32,7 +33,8 @@ public class EventLogSettings /// public Func? Filter { get; set; } - internal IEventLog EventLog + [EditorBrowsable(EditorBrowsableState.Never)] + public Internal.IEventLog EventLog { get => _eventLog ??= CreateDefaultEventLog(); diff --git a/src/libraries/Microsoft.Extensions.Logging.EventLog/src/EventLoggerFactoryExtensions.cs b/src/libraries/Microsoft.Extensions.Logging.EventLog/src/EventLoggerFactoryExtensions.cs index 8ac843c859af08..9d2f70d6eb590a 100644 --- a/src/libraries/Microsoft.Extensions.Logging.EventLog/src/EventLoggerFactoryExtensions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.EventLog/src/EventLoggerFactoryExtensions.cs @@ -13,6 +13,17 @@ namespace Microsoft.Extensions.Logging /// public static class EventLoggerFactoryExtensions { + [System.Obsolete("This method is obsolete and will be removed in a future version. The recommended alternative is AddEventLog(this ILoggingBuilder builder).")] + public static ILoggerFactory AddEventLog(this ILoggerFactory factory, EventLog.EventLogSettings settings) { throw new NotImplementedException(); } + + + [System.Obsolete("This method is obsolete and will be removed in a future version. The recommended alternative is AddEventLog(this ILoggingBuilder builder).")] + public static ILoggerFactory AddEventLog(this ILoggerFactory factory, LogLevel minLevel) { throw new NotImplementedException(); } + + + [System.Obsolete("This method is obsolete and will be removed in a future version. The recommended alternative is AddEventLog(this ILoggingBuilder builder).")] + public static ILoggerFactory AddEventLog(this ILoggerFactory factory) { throw new NotImplementedException(); } + /// /// Adds an event logger named 'EventLog' to the factory. /// diff --git a/src/libraries/Microsoft.Extensions.Logging.EventLog/src/IEventLog.cs b/src/libraries/Microsoft.Extensions.Logging.EventLog/src/IEventLog.cs index 2c83fa194e6bbc..0ae51228c3958e 100644 --- a/src/libraries/Microsoft.Extensions.Logging.EventLog/src/IEventLog.cs +++ b/src/libraries/Microsoft.Extensions.Logging.EventLog/src/IEventLog.cs @@ -1,11 +1,13 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System.ComponentModel; using System.Diagnostics; -namespace Microsoft.Extensions.Logging.EventLog +namespace Microsoft.Extensions.Logging.EventLog.Internal { - internal interface IEventLog + [EditorBrowsable(EditorBrowsableState.Never)] + public interface IEventLog { int? DefaultEventId { get; } diff --git a/src/libraries/Microsoft.Extensions.Logging.EventLog/src/WindowsEventLog.cs b/src/libraries/Microsoft.Extensions.Logging.EventLog/src/WindowsEventLog.cs index a43f74614a70ab..7f156e738477a0 100644 --- a/src/libraries/Microsoft.Extensions.Logging.EventLog/src/WindowsEventLog.cs +++ b/src/libraries/Microsoft.Extensions.Logging.EventLog/src/WindowsEventLog.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; +using System.ComponentModel; using System.Diagnostics; using System.Security; using System.Runtime.Versioning; @@ -12,7 +13,8 @@ namespace Microsoft.Extensions.Logging.EventLog /// The windows event log. /// [SupportedOSPlatform("windows")] - internal sealed class WindowsEventLog : IEventLog + [EditorBrowsable(EditorBrowsableState.Never)] + public sealed class WindowsEventLog : Internal.IEventLog { // https://msdn.microsoft.com/EN-US/library/windows/desktop/aa363679.aspx private const int MaximumMessageSize = 31839; diff --git a/src/libraries/Microsoft.Extensions.Logging.EventSource/ref/Microsoft.Extensions.Logging.EventSource.cs b/src/libraries/Microsoft.Extensions.Logging.EventSource/ref/Microsoft.Extensions.Logging.EventSource.cs index 023c42d936c499..dac281b16fca78 100644 --- a/src/libraries/Microsoft.Extensions.Logging.EventSource/ref/Microsoft.Extensions.Logging.EventSource.cs +++ b/src/libraries/Microsoft.Extensions.Logging.EventSource/ref/Microsoft.Extensions.Logging.EventSource.cs @@ -8,6 +8,8 @@ namespace Microsoft.Extensions.Logging { public static partial class EventSourceLoggerFactoryExtensions { + [System.ObsoleteAttribute("This method is obsolete and will be removed in a future version. The recommended alternative is AddEventSourceLogger(this ILoggingBuilder builder).")] + public static Microsoft.Extensions.Logging.ILoggerFactory AddEventSourceLogger(this Microsoft.Extensions.Logging.ILoggerFactory factory) { throw null; } public static Microsoft.Extensions.Logging.ILoggingBuilder AddEventSourceLogger(this Microsoft.Extensions.Logging.ILoggingBuilder builder) { throw null; } } } diff --git a/src/libraries/Microsoft.Extensions.Logging.EventSource/src/EventSourceLoggerFactoryExtensions.cs b/src/libraries/Microsoft.Extensions.Logging.EventSource/src/EventSourceLoggerFactoryExtensions.cs index 7f247bd6caec92..e7e9492e487a42 100644 --- a/src/libraries/Microsoft.Extensions.Logging.EventSource/src/EventSourceLoggerFactoryExtensions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.EventSource/src/EventSourceLoggerFactoryExtensions.cs @@ -14,6 +14,9 @@ namespace Microsoft.Extensions.Logging /// public static class EventSourceLoggerFactoryExtensions { + [System.Obsolete("This method is obsolete and will be removed in a future version. The recommended alternative is AddEventSourceLogger(this ILoggingBuilder builder).")] + public static ILoggerFactory AddEventSourceLogger(this ILoggerFactory factory) { throw new NotImplementedException(); } + /// /// Adds an event logger named 'EventSource' to the factory. /// diff --git a/src/libraries/Microsoft.Extensions.Logging.TraceSource/ref/Microsoft.Extensions.Logging.TraceSource.cs b/src/libraries/Microsoft.Extensions.Logging.TraceSource/ref/Microsoft.Extensions.Logging.TraceSource.cs index 66396cb62448ae..b955b3e46cd148 100644 --- a/src/libraries/Microsoft.Extensions.Logging.TraceSource/ref/Microsoft.Extensions.Logging.TraceSource.cs +++ b/src/libraries/Microsoft.Extensions.Logging.TraceSource/ref/Microsoft.Extensions.Logging.TraceSource.cs @@ -8,6 +8,14 @@ namespace Microsoft.Extensions.Logging { public static partial class TraceSourceFactoryExtensions { + [System.ObsoleteAttribute("This method is obsolete and will be removed in a future version. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).")] + public static Microsoft.Extensions.Logging.ILoggerFactory AddTraceSource(this Microsoft.Extensions.Logging.ILoggerFactory factory, System.Diagnostics.SourceSwitch sourceSwitch) { throw null; } + [System.ObsoleteAttribute("This method is obsolete and will be removed in a future version. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).")] + public static Microsoft.Extensions.Logging.ILoggerFactory AddTraceSource(this Microsoft.Extensions.Logging.ILoggerFactory factory, System.Diagnostics.SourceSwitch sourceSwitch, System.Diagnostics.TraceListener listener) { throw null; } + [System.ObsoleteAttribute("This method is obsolete and will be removed in a future version. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).")] + public static Microsoft.Extensions.Logging.ILoggerFactory AddTraceSource(this Microsoft.Extensions.Logging.ILoggerFactory factory, string switchName) { throw null; } + [System.ObsoleteAttribute("This method is obsolete and will be removed in a future version. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).")] + public static Microsoft.Extensions.Logging.ILoggerFactory AddTraceSource(this Microsoft.Extensions.Logging.ILoggerFactory factory, string switchName, System.Diagnostics.TraceListener listener) { throw null; } public static Microsoft.Extensions.Logging.ILoggingBuilder AddTraceSource(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Diagnostics.SourceSwitch sourceSwitch) { throw null; } public static Microsoft.Extensions.Logging.ILoggingBuilder AddTraceSource(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Diagnostics.SourceSwitch sourceSwitch, System.Diagnostics.TraceListener listener) { throw null; } public static Microsoft.Extensions.Logging.ILoggingBuilder AddTraceSource(this Microsoft.Extensions.Logging.ILoggingBuilder builder, string switchName) { throw null; } @@ -16,6 +24,14 @@ public static partial class TraceSourceFactoryExtensions } namespace Microsoft.Extensions.Logging.TraceSource { + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public sealed partial class TraceSourceLogger : Microsoft.Extensions.Logging.ILogger + { + public TraceSourceLogger(System.Diagnostics.TraceSource traceSource) { } + public System.IDisposable BeginScope(TState state) where TState : notnull { throw null; } + public bool IsEnabled(Microsoft.Extensions.Logging.LogLevel logLevel) { throw null; } + public void Log(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, TState state, System.Exception? exception, System.Func formatter) { } + } [Microsoft.Extensions.Logging.ProviderAliasAttribute("TraceSource")] public partial class TraceSourceLoggerProvider : Microsoft.Extensions.Logging.ILoggerProvider, System.IDisposable { @@ -24,4 +40,10 @@ public TraceSourceLoggerProvider(System.Diagnostics.SourceSwitch rootSourceSwitc public Microsoft.Extensions.Logging.ILogger CreateLogger(string name) { throw null; } public void Dispose() { } } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public sealed partial class TraceSourceScope : System.IDisposable + { + public TraceSourceScope(object state) { } + public void Dispose() { } + } } diff --git a/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/TraceSourceFactoryExtensions.cs b/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/TraceSourceFactoryExtensions.cs index e8d2bba55a0b16..f4a69eaa8f6c81 100644 --- a/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/TraceSourceFactoryExtensions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/TraceSourceFactoryExtensions.cs @@ -13,6 +13,18 @@ namespace Microsoft.Extensions.Logging /// public static class TraceSourceFactoryExtensions { + [System.Obsolete("This method is obsolete and will be removed in a future version. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).")] + public static ILoggerFactory AddTraceSource(this ILoggerFactory factory, System.Diagnostics.SourceSwitch sourceSwitch, System.Diagnostics.TraceListener listener) { throw new NotImplementedException(); } + + [System.Obsolete("This method is obsolete and will be removed in a future version. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).")] + public static ILoggerFactory AddTraceSource(this ILoggerFactory factory, System.Diagnostics.SourceSwitch sourceSwitch) { throw new NotImplementedException(); } + + [System.Obsolete("This method is obsolete and will be removed in a future version. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).")] + public static ILoggerFactory AddTraceSource(this ILoggerFactory factory, string switchName, System.Diagnostics.TraceListener listener) { throw new NotImplementedException(); } + + [System.Obsolete("This method is obsolete and will be removed in a future version. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).")] + public static ILoggerFactory AddTraceSource(this ILoggerFactory factory, string switchName) { throw new NotImplementedException(); } + /// /// Adds a TraceSource logger named 'TraceSource' to the factory. /// diff --git a/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/TraceSourceLogger.cs b/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/TraceSourceLogger.cs index 7d94f25821f195..ba4d2fd5364777 100644 --- a/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/TraceSourceLogger.cs +++ b/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/TraceSourceLogger.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; +using System.ComponentModel; using System.Diagnostics; using DiagnosticsTraceSource = System.Diagnostics.TraceSource; @@ -10,7 +11,8 @@ namespace Microsoft.Extensions.Logging.TraceSource /// /// A logger that writes a trace source log message. /// - internal sealed class TraceSourceLogger : ILogger + [EditorBrowsable(EditorBrowsableState.Never)] + public sealed class TraceSourceLogger : ILogger { private readonly DiagnosticsTraceSource _traceSource; diff --git a/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/TraceSourceScope.cs b/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/TraceSourceScope.cs index 80ecc8844e8213..2c850eb1d2fa8a 100644 --- a/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/TraceSourceScope.cs +++ b/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/TraceSourceScope.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; +using System.ComponentModel; using System.Diagnostics; namespace Microsoft.Extensions.Logging.TraceSource @@ -9,7 +10,8 @@ namespace Microsoft.Extensions.Logging.TraceSource /// /// Provides an IDisposable that represents a logical operation scope based on System.Diagnostics LogicalOperationStack /// - internal sealed class TraceSourceScope : IDisposable + [EditorBrowsable(EditorBrowsableState.Never)] + public sealed class TraceSourceScope : IDisposable { // To detect redundant calls private bool _isDisposed; diff --git a/src/libraries/Microsoft.Extensions.Options/ref/Microsoft.Extensions.Options.cs b/src/libraries/Microsoft.Extensions.Options/ref/Microsoft.Extensions.Options.cs index 6ae6095e9ad3e6..b168e78c08a423 100644 --- a/src/libraries/Microsoft.Extensions.Options/ref/Microsoft.Extensions.Options.cs +++ b/src/libraries/Microsoft.Extensions.Options/ref/Microsoft.Extensions.Options.cs @@ -218,6 +218,12 @@ public OptionsValidationException(string optionsName, System.Type optionsType, S public partial class OptionsWrapper<[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicParameterlessConstructor)] TOptions> : Microsoft.Extensions.Options.IOptions where TOptions : class { public OptionsWrapper(TOptions options) { } + [System.ObsoleteAttribute("This method is obsolete and will be removed in a future version.")] + public void Add(string name, TOptions options) { } + [System.ObsoleteAttribute("This method is obsolete and will be removed in a future version.")] + public TOptions Get(string name) { throw null; } + [System.ObsoleteAttribute("This method is obsolete and will be removed in a future version.")] + public bool Remove(string name) { throw null; } public TOptions Value { get { throw null; } } } public partial class PostConfigureOptions : Microsoft.Extensions.Options.IPostConfigureOptions where TOptions : class diff --git a/src/libraries/Microsoft.Extensions.Options/src/OptionsWrapper.cs b/src/libraries/Microsoft.Extensions.Options/src/OptionsWrapper.cs index 4de276d6de35b7..301f3c31904a44 100644 --- a/src/libraries/Microsoft.Extensions.Options/src/OptionsWrapper.cs +++ b/src/libraries/Microsoft.Extensions.Options/src/OptionsWrapper.cs @@ -1,6 +1,7 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System; using System.Diagnostics.CodeAnalysis; namespace Microsoft.Extensions.Options @@ -26,5 +27,34 @@ public OptionsWrapper(TOptions options) /// The options instance. /// public TOptions Value { get; } + + /// + /// This method is obsolete and will be removed in a future version. + /// + [Obsolete("This method is obsolete and will be removed in a future version.")] + public void Add(string name, TOptions options) + { + throw new NotImplementedException(); + } + + /// + /// This method is obsolete and will be removed in a future version. + /// + /// This parameter is ignored. + /// The . + [Obsolete("This method is obsolete and will be removed in a future version.")] + public TOptions Get(string name) + { + return Value; + } + + /// + /// This method is obsolete and will be removed in a future version. + /// + [Obsolete("This method is obsolete and will be removed in a future version.")] + public bool Remove(string name) + { + throw new NotImplementedException(); + } } } diff --git a/src/libraries/Microsoft.Extensions.Primitives/ref/Microsoft.Extensions.Primitives.cs b/src/libraries/Microsoft.Extensions.Primitives/ref/Microsoft.Extensions.Primitives.cs index 5811822286a001..f5d17b9f4573b8 100644 --- a/src/libraries/Microsoft.Extensions.Primitives/ref/Microsoft.Extensions.Primitives.cs +++ b/src/libraries/Microsoft.Extensions.Primitives/ref/Microsoft.Extensions.Primitives.cs @@ -36,6 +36,19 @@ public partial interface IChangeToken bool HasChanged { get; } System.IDisposable RegisterChangeCallback(System.Action callback, object? state); } + [System.ObsoleteAttribute("This type is obsolete and will be removed in a future version.")] + public partial struct InplaceStringBuilder + { + private object _dummy; + private int _dummyPrimitive; + public InplaceStringBuilder(int capacity) { throw null; } + public int Capacity { get { throw null; } set { } } + public void Append(Microsoft.Extensions.Primitives.StringSegment segment) { } + public void Append(char c) { } + public void Append(string? value) { } + public void Append(string? value, int offset, int count) { } + public override string? ToString() { throw null; } + } public readonly partial struct StringSegment : System.IEquatable, System.IEquatable { private readonly object _dummy; diff --git a/src/libraries/Microsoft.Extensions.Primitives/src/InplaceStringBuilder.cs b/src/libraries/Microsoft.Extensions.Primitives/src/InplaceStringBuilder.cs new file mode 100644 index 00000000000000..2fe2f6c5b7e089 --- /dev/null +++ b/src/libraries/Microsoft.Extensions.Primitives/src/InplaceStringBuilder.cs @@ -0,0 +1,133 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Diagnostics; +using System.Runtime.CompilerServices; + +namespace Microsoft.Extensions.Primitives +{ + [DebuggerDisplay("Value = {_value}")] + [Obsolete("This type is obsolete and will be removed in a future version.")] + public struct InplaceStringBuilder + { + private int _offset; + private int _capacity; + private string? _value; + + public InplaceStringBuilder(int capacity) : this() + { + if (capacity < 0) + { + ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.capacity); + } + + _capacity = capacity; + } + + public int Capacity + { + get => _capacity; + set + { + if (value < 0) + { + ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.value); + } + + // _offset > 0 indicates writing state + if (_offset > 0) + { + ThrowHelper.ThrowInvalidOperationException(ExceptionResource.Capacity_CannotChangeAfterWriteStarted); + } + + _capacity = value; + } + } + + public void Append(string? value) + { + if (value == null) + { + ThrowHelper.ThrowArgumentNullException(ExceptionArgument.value); + } + + Append(value, 0, value.Length); + } + + public void Append(StringSegment segment) + { + Append(segment.Buffer, segment.Offset, segment.Length); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public unsafe void Append(string? value, int offset, int count) + { + EnsureValueIsInitialized(); + + if (value == null + || offset < 0 + || value.Length - offset < count + || Capacity - _offset < count) + { + ThrowValidationError(value, offset, count); + } + + fixed (char* destination = _value) + fixed (char* source = value) + { + Unsafe.CopyBlockUnaligned(destination + _offset, source + offset, (uint)count * 2); + _offset += count; + } + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public unsafe void Append(char c) + { + EnsureValueIsInitialized(); + + if (_offset >= Capacity) + { + ThrowHelper.ThrowInvalidOperationException(ExceptionResource.Capacity_NotEnough, 1, Capacity - _offset); + } + + fixed (char* destination = _value) + { + destination[_offset++] = c; + } + } + + public override string? ToString() + { + if (Capacity != _offset) + { + ThrowHelper.ThrowInvalidOperationException(ExceptionResource.Capacity_NotUsedEntirely, Capacity, _offset); + } + + return _value; + } + + private void EnsureValueIsInitialized() + { + _value ??= new string('\0', _capacity); + } + + private void ThrowValidationError(string? value, int offset, int count) + { + if (value == null) + { + ThrowHelper.ThrowArgumentNullException(ExceptionArgument.value); + } + + if (offset < 0 || value.Length - offset < count) + { + ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.offset); + } + + if (Capacity - _offset < count) + { + ThrowHelper.ThrowInvalidOperationException(ExceptionResource.Capacity_NotEnough, value.Length, Capacity - _offset); + } + } + } +} From cc664db74bcc21151ce9151a6548c84c5e0a2a41 Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Sat, 6 May 2023 09:41:03 -0700 Subject: [PATCH 02/21] Fix a couple missing interfaces --- ...crosoft.Extensions.Logging.Abstractions.cs | 5 ++-- .../src/Obsolete.cs | 23 +++++++++++-------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/src/libraries/Microsoft.Extensions.Logging.Abstractions/ref/Microsoft.Extensions.Logging.Abstractions.cs b/src/libraries/Microsoft.Extensions.Logging.Abstractions/ref/Microsoft.Extensions.Logging.Abstractions.cs index efc247563b74a6..cda5656c0fdced 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Abstractions/ref/Microsoft.Extensions.Logging.Abstractions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Abstractions/ref/Microsoft.Extensions.Logging.Abstractions.cs @@ -199,7 +199,7 @@ public void Log(Microsoft.Extensions.Logging.LogLevel logLevel, Microsof namespace Microsoft.Extensions.Logging.Abstractions.Internal { [System.ObsoleteAttribute("TODO")] - public partial class NullScope + public partial class NullScope : System.IDisposable { internal NullScope() { } public static Microsoft.Extensions.Logging.Abstractions.Internal.NullScope Instance { get { throw null; } } @@ -215,12 +215,13 @@ public TypeNameHelper() { } namespace Microsoft.Extensions.Logging.Internal { [System.ObsoleteAttribute("TODO")] - public partial class FormattedLogValues + public partial class FormattedLogValues : System.Collections.Generic.IEnumerable>, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyList>, System.Collections.IEnumerable { public FormattedLogValues(string format, params object[] values) { } public int Count { get { throw null; } } public System.Collections.Generic.KeyValuePair this[int index] { get { throw null; } } public System.Collections.Generic.IEnumerator> GetEnumerator() { throw null; } + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { throw null; } public override string ToString() { throw null; } } [System.ObsoleteAttribute("TODO")] diff --git a/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/Obsolete.cs b/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/Obsolete.cs index a7eba26dba81e8..d770eeb1c69456 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/Obsolete.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/Obsolete.cs @@ -2,15 +2,17 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; +using System.Collections; +using System.Collections.Generic; namespace Microsoft.Extensions.Logging.Abstractions.Internal { [System.Obsolete("TODO")] - public partial class NullScope + public partial class NullScope : IDisposable { internal NullScope() { } - public static NullScope Instance { get { throw new NotImplementedException(); } } + public static NullScope Instance { get; } = new NullScope(); public void Dispose() { } } @@ -20,22 +22,25 @@ public partial class TypeNameHelper { public TypeNameHelper() { } - public static string GetTypeDisplayName(System.Type type) { throw new NotImplementedException(); } + public static string GetTypeDisplayName(System.Type type) => + Microsoft.Extensions.Internal.TypeNameHelper.GetTypeDisplayName(type); } } namespace Microsoft.Extensions.Logging.Internal { [System.Obsolete("TODO")] - public partial class FormattedLogValues + public partial class FormattedLogValues : IReadOnlyList> { public FormattedLogValues(string format, params object[] values) { } public int Count { get { throw new NotImplementedException(); } } - public System.Collections.Generic.KeyValuePair this[int index] { get { throw new NotImplementedException(); } } + public KeyValuePair this[int index] { get { throw new NotImplementedException(); } } - public System.Collections.Generic.IEnumerator> GetEnumerator() { throw new NotImplementedException(); } + public IEnumerator> GetEnumerator() { throw new NotImplementedException(); } + + IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); public override string ToString() { throw new NotImplementedException(); } } @@ -47,12 +52,12 @@ public LogValuesFormatter(string format) { } public string OriginalFormat { get { throw new NotImplementedException(); } } - public System.Collections.Generic.List ValueNames { get { throw new NotImplementedException(); } } + public List ValueNames { get { throw new NotImplementedException(); } } public string Format(object[] values) { throw new NotImplementedException(); } - public System.Collections.Generic.KeyValuePair GetValue(object[] values, int index) { throw new NotImplementedException(); } + public KeyValuePair GetValue(object[] values, int index) { throw new NotImplementedException(); } - public System.Collections.Generic.IEnumerable> GetValues(object[] values) { throw new NotImplementedException(); } + public IEnumerable> GetValues(object[] values) { throw new NotImplementedException(); } } } From c23bad722ab49658c5349a810c8ebf3fa80c7db4 Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Sun, 7 May 2023 09:08:33 -0700 Subject: [PATCH 03/21] Fix EventLog test --- .../tests/Common/EventLogLoggerTest.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libraries/Microsoft.Extensions.Logging/tests/Common/EventLogLoggerTest.cs b/src/libraries/Microsoft.Extensions.Logging/tests/Common/EventLogLoggerTest.cs index 88dbc4c4b8ec56..61997bd9f12cd7 100644 --- a/src/libraries/Microsoft.Extensions.Logging/tests/Common/EventLogLoggerTest.cs +++ b/src/libraries/Microsoft.Extensions.Logging/tests/Common/EventLogLoggerTest.cs @@ -7,6 +7,7 @@ using System.Linq; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging.EventLog; +using Microsoft.Extensions.Logging.EventLog.Internal; using Xunit; namespace Microsoft.Extensions.Logging From 8078dd5cc6c6692168a4350ab9e4b44730301628 Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Mon, 8 May 2023 10:30:20 -0700 Subject: [PATCH 04/21] Undo interface heirarchy change in hosting We can't push members down in interfaces. While this works for implicit interface implementations, the runtime will fail the type load if the type explicitly implemented those members in the old interface. --- ...crosoft.Extensions.Hosting.Abstractions.cs | 12 +++- .../src/IApplicationLifetime.cs | 28 +++++++- .../src/IHostingEnvironment.cs | 26 +++++++- .../src/Internal/ConsoleLifetime.cs | 4 -- .../src/Internal/ConsoleLifetime.obsolete.cs | 66 +++++++++++++++++++ 5 files changed, 126 insertions(+), 10 deletions(-) create mode 100644 src/libraries/Microsoft.Extensions.Hosting/src/Internal/ConsoleLifetime.obsolete.cs diff --git a/src/libraries/Microsoft.Extensions.Hosting.Abstractions/ref/Microsoft.Extensions.Hosting.Abstractions.cs b/src/libraries/Microsoft.Extensions.Hosting.Abstractions/ref/Microsoft.Extensions.Hosting.Abstractions.cs index 6581bb113e5e96..b4d493695f125e 100644 --- a/src/libraries/Microsoft.Extensions.Hosting.Abstractions/ref/Microsoft.Extensions.Hosting.Abstractions.cs +++ b/src/libraries/Microsoft.Extensions.Hosting.Abstractions/ref/Microsoft.Extensions.Hosting.Abstractions.cs @@ -84,8 +84,12 @@ public static partial class HostingEnvironmentExtensions public static bool IsStaging(this Microsoft.Extensions.Hosting.IHostingEnvironment hostingEnvironment) { throw null; } } [System.ObsoleteAttribute("IApplicationLifetime has been deprecated. Use Microsoft.Extensions.Hosting.IHostApplicationLifetime instead.")] - public partial interface IApplicationLifetime : Microsoft.Extensions.Hosting.IHostApplicationLifetime + public partial interface IApplicationLifetime { + System.Threading.CancellationToken ApplicationStarted { get; } + System.Threading.CancellationToken ApplicationStopped { get; } + System.Threading.CancellationToken ApplicationStopping { get; } + void StopApplication(); } public partial interface IHost : System.IDisposable { @@ -124,8 +128,12 @@ public partial interface IHostEnvironment string EnvironmentName { get; set; } } [System.ObsoleteAttribute("IHostingEnvironment has been deprecated. Use Microsoft.Extensions.Hosting.IHostEnvironment instead.")] - public partial interface IHostingEnvironment : Microsoft.Extensions.Hosting.IHostEnvironment + public partial interface IHostingEnvironment { + string ApplicationName { get; set; } + Microsoft.Extensions.FileProviders.IFileProvider ContentRootFileProvider { get; set; } + string ContentRootPath { get; set; } + string EnvironmentName { get; set; } } public partial interface IHostLifetime { diff --git a/src/libraries/Microsoft.Extensions.Hosting.Abstractions/src/IApplicationLifetime.cs b/src/libraries/Microsoft.Extensions.Hosting.Abstractions/src/IApplicationLifetime.cs index 041044d3551d71..326feb0458bc0d 100644 --- a/src/libraries/Microsoft.Extensions.Hosting.Abstractions/src/IApplicationLifetime.cs +++ b/src/libraries/Microsoft.Extensions.Hosting.Abstractions/src/IApplicationLifetime.cs @@ -14,6 +14,30 @@ namespace Microsoft.Extensions.Hosting /// /// [Obsolete("IApplicationLifetime has been deprecated. Use Microsoft.Extensions.Hosting.IHostApplicationLifetime instead.")] - public interface IApplicationLifetime : IHostApplicationLifetime - { } + public interface IApplicationLifetime + { + /// + /// Triggered when the application host has fully started and is about to wait + /// for a graceful shutdown. + /// + CancellationToken ApplicationStarted { get; } + + /// + /// Triggered when the application host is performing a graceful shutdown. + /// Requests may still be in flight. Shutdown will block until this event completes. + /// + CancellationToken ApplicationStopping { get; } + + /// + /// Triggered when the application host is performing a graceful shutdown. + /// All requests should be complete at this point. Shutdown will block + /// until this event completes. + /// + CancellationToken ApplicationStopped { get; } + + /// + /// Requests termination of the current application. + /// + void StopApplication(); + } } diff --git a/src/libraries/Microsoft.Extensions.Hosting.Abstractions/src/IHostingEnvironment.cs b/src/libraries/Microsoft.Extensions.Hosting.Abstractions/src/IHostingEnvironment.cs index 7d2747bc2fcda2..af94ab7c1b59c3 100644 --- a/src/libraries/Microsoft.Extensions.Hosting.Abstractions/src/IHostingEnvironment.cs +++ b/src/libraries/Microsoft.Extensions.Hosting.Abstractions/src/IHostingEnvironment.cs @@ -14,6 +14,28 @@ namespace Microsoft.Extensions.Hosting /// /// [Obsolete("IHostingEnvironment has been deprecated. Use Microsoft.Extensions.Hosting.IHostEnvironment instead.")] - public interface IHostingEnvironment : IHostEnvironment - { } + public interface IHostingEnvironment + { + /// + /// Gets or sets the name of the environment. The host automatically sets this property to the value of the + /// of the "environment" key as specified in configuration. + /// + string EnvironmentName { get; set; } + + /// + /// Gets or sets the name of the application. This property is automatically set by the host to the assembly containing + /// the application entry point. + /// + string ApplicationName { get; set; } + + /// + /// Gets or sets the absolute path to the directory that contains the application content files. + /// + string ContentRootPath { get; set; } + + /// + /// Gets or sets an pointing at . + /// + IFileProvider ContentRootFileProvider { get; set; } + } } diff --git a/src/libraries/Microsoft.Extensions.Hosting/src/Internal/ConsoleLifetime.cs b/src/libraries/Microsoft.Extensions.Hosting/src/Internal/ConsoleLifetime.cs index 99e74d7a11b3b4..372a6146c55d25 100644 --- a/src/libraries/Microsoft.Extensions.Hosting/src/Internal/ConsoleLifetime.cs +++ b/src/libraries/Microsoft.Extensions.Hosting/src/Internal/ConsoleLifetime.cs @@ -23,10 +23,6 @@ public partial class ConsoleLifetime : IHostLifetime, IDisposable private CancellationTokenRegistration _applicationStartedRegistration; private CancellationTokenRegistration _applicationStoppingRegistration; - [Obsolete("IHostingEnvironment and IApplicationLifetime have been deprecated. Use Microsoft.Extensions.Hosting.IHostEnvironment and IHostApplicationLifetime instead.")] - public ConsoleLifetime(IOptions options, IHostingEnvironment environment, IApplicationLifetime applicationLifetime) - : this (options, environment, applicationLifetime, new OptionsWrapper(new HostOptions())) { } - public ConsoleLifetime(IOptions options, IHostEnvironment environment, IHostApplicationLifetime applicationLifetime, IOptions hostOptions) : this(options, environment, applicationLifetime, hostOptions, NullLoggerFactory.Instance) { } diff --git a/src/libraries/Microsoft.Extensions.Hosting/src/Internal/ConsoleLifetime.obsolete.cs b/src/libraries/Microsoft.Extensions.Hosting/src/Internal/ConsoleLifetime.obsolete.cs new file mode 100644 index 00000000000000..e3705e4133f9b5 --- /dev/null +++ b/src/libraries/Microsoft.Extensions.Hosting/src/Internal/ConsoleLifetime.obsolete.cs @@ -0,0 +1,66 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Threading; +using Microsoft.Extensions.FileProviders; +using Microsoft.Extensions.Options; + +namespace Microsoft.Extensions.Hosting.Internal +{ + public partial class ConsoleLifetime : IHostLifetime + { + [Obsolete("IHostingEnvironment and IApplicationLifetime have been deprecated. Use Microsoft.Extensions.Hosting.IHostEnvironment and IHostApplicationLifetime instead.")] + public ConsoleLifetime(IOptions options, IHostingEnvironment environment, IApplicationLifetime applicationLifetime) + : this (options, new HostingEnvironmentAdapter(environment), new ApplicationLifetimeAdapter(applicationLifetime), new OptionsWrapper(new HostOptions())) { } + + #pragma warning disable CS0618 + private struct HostingEnvironmentAdapter : IHostEnvironment + { + private IHostingEnvironment _hostingEnvironment; + public HostingEnvironmentAdapter(IHostingEnvironment hostingEnvironment) + { + _hostingEnvironment = hostingEnvironment; + } + + public string EnvironmentName + { + get => _hostingEnvironment.EnvironmentName; + set => _hostingEnvironment.EnvironmentName = value; + } + public string ApplicationName + { + get => _hostingEnvironment.ApplicationName; + set => _hostingEnvironment.ApplicationName = value; + } + public string ContentRootPath + { + get => _hostingEnvironment.ContentRootPath; + set => _hostingEnvironment.ContentRootPath = value; + } + public IFileProvider ContentRootFileProvider + { + get => _hostingEnvironment.ContentRootFileProvider; + + set => _hostingEnvironment.ContentRootFileProvider = value; + } + } + + private struct ApplicationLifetimeAdapter : IHostApplicationLifetime + { + private IApplicationLifetime _applicationLifetime; + + public ApplicationLifetimeAdapter(IApplicationLifetime applicationLifetime) + { + _applicationLifetime = applicationLifetime; + } + + public CancellationToken ApplicationStarted { get => _applicationLifetime.ApplicationStarted; } + public CancellationToken ApplicationStopping { get => _applicationLifetime.ApplicationStopping; } + public CancellationToken ApplicationStopped { get => _applicationLifetime.ApplicationStopped; } + public void StopApplication() => _applicationLifetime.StopApplication(); + } + #pragma warning restore CS0618 + + } +} From ef06d4a28558369f4e434cc3ea3c8c40f4a14d9d Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Mon, 8 May 2023 10:30:48 -0700 Subject: [PATCH 05/21] Add API compat validation for old Extensions baseline --- src/libraries/Directory.Build.targets | 53 +++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/src/libraries/Directory.Build.targets b/src/libraries/Directory.Build.targets index 8e000b5f4d7604..13348b9dc45d13 100644 --- a/src/libraries/Directory.Build.targets +++ b/src/libraries/Directory.Build.targets @@ -207,4 +207,57 @@ + + + + true + 2.2.0 + $(IntermediateOutputPath)$(MSBuildThisFileName).semaphore + + $([MSBuild]::NormalizePath('$(MSBuildProjectDirectory)', 'Extensions.CompatibilitySuppressions.xml')) + $(ApiCompatGenerateSuppressionFile) + $(ExtensionsCompatSuppressionFilePath) + + + + + + + + + + + + $([MSBuild]::NormalizePath('$(NuGetPackageRoot)', '$(PackageId.ToLower())', '$(ExtensionsCompatVersion)', '$(PackageId.ToLower()).$(ExtensionsCompatVersion).nupkg')) + + + + + + + + From 8fae371e8e3b176539d49d4f9a39896d79d7e991 Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Mon, 8 May 2023 12:51:30 -0700 Subject: [PATCH 06/21] Bring back less logging API and baseline missing --- ...ndencyInjection.Specification.Tests.csproj | 1 + ...icrosoft.Extensions.DependencyModel.csproj | 1 + ...ensions.HostFactoryResolver.Sources.csproj | 1 + .../Extensions.CompatibilitySuppressions.xml | 11 +++ ...icrosoft.Extensions.Hosting.Systemd.csproj | 1 + ....Extensions.Hosting.WindowsServices.csproj | 1 + ...crosoft.Extensions.Logging.Abstractions.cs | 39 --------- .../Extensions.CompatibilitySuppressions.xml | 32 ++++++++ .../src/Obsolete.cs | 63 --------------- .../Microsoft.Extensions.Logging.Console.cs | 68 ---------------- .../src/ConsoleLogger.cs | 4 +- .../Extensions.CompatibilitySuppressions.xml | 60 ++++++++++++++ .../src/Obsolete.cs | 79 ------------------- .../ref/Microsoft.Extensions.Logging.Debug.cs | 8 -- .../src/DebugLogger.cs | 4 +- .../src/DebugLogger.debug.cs | 2 +- .../Extensions.CompatibilitySuppressions.xml | 18 +++++ .../Microsoft.Extensions.Logging.EventLog.cs | 31 -------- .../src/EventLogLogger.cs | 6 +- .../src/EventLogSettings.cs | 6 +- .../Extensions.CompatibilitySuppressions.xml | 74 +++++++++++++++++ .../src/IEventLog.cs | 6 +- .../src/WindowsEventLog.cs | 4 +- ...icrosoft.Extensions.Logging.TraceSource.cs | 14 ---- .../Extensions.CompatibilitySuppressions.xml | 18 +++++ .../src/TraceSourceLogger.cs | 4 +- .../src/TraceSourceScope.cs | 4 +- .../tests/Common/EventLogLoggerTest.cs | 1 - 28 files changed, 230 insertions(+), 331 deletions(-) create mode 100644 src/libraries/Microsoft.Extensions.Hosting.Abstractions/src/Extensions.CompatibilitySuppressions.xml create mode 100644 src/libraries/Microsoft.Extensions.Logging.Abstractions/src/Extensions.CompatibilitySuppressions.xml delete mode 100644 src/libraries/Microsoft.Extensions.Logging.Abstractions/src/Obsolete.cs create mode 100644 src/libraries/Microsoft.Extensions.Logging.Console/src/Extensions.CompatibilitySuppressions.xml create mode 100644 src/libraries/Microsoft.Extensions.Logging.Debug/src/Extensions.CompatibilitySuppressions.xml create mode 100644 src/libraries/Microsoft.Extensions.Logging.EventLog/src/Extensions.CompatibilitySuppressions.xml create mode 100644 src/libraries/Microsoft.Extensions.Logging.TraceSource/src/Extensions.CompatibilitySuppressions.xml diff --git a/src/libraries/Microsoft.Extensions.DependencyInjection.Specification.Tests/src/Microsoft.Extensions.DependencyInjection.Specification.Tests.csproj b/src/libraries/Microsoft.Extensions.DependencyInjection.Specification.Tests/src/Microsoft.Extensions.DependencyInjection.Specification.Tests.csproj index 8a167e3eab1283..d9ce96fd795a6d 100644 --- a/src/libraries/Microsoft.Extensions.DependencyInjection.Specification.Tests/src/Microsoft.Extensions.DependencyInjection.Specification.Tests.csproj +++ b/src/libraries/Microsoft.Extensions.DependencyInjection.Specification.Tests/src/Microsoft.Extensions.DependencyInjection.Specification.Tests.csproj @@ -9,6 +9,7 @@ false false $(NoWarn);CA1852 + true true Suite of xUnit.net tests to check for container compatibility with Microsoft.Extensions.DependencyInjection. diff --git a/src/libraries/Microsoft.Extensions.DependencyModel/src/Microsoft.Extensions.DependencyModel.csproj b/src/libraries/Microsoft.Extensions.DependencyModel/src/Microsoft.Extensions.DependencyModel.csproj index ca71ccf4d0d348..cbbc50a4eaa601 100644 --- a/src/libraries/Microsoft.Extensions.DependencyModel/src/Microsoft.Extensions.DependencyModel.csproj +++ b/src/libraries/Microsoft.Extensions.DependencyModel/src/Microsoft.Extensions.DependencyModel.csproj @@ -2,6 +2,7 @@ $(NetCoreAppCurrent);$(NetCoreAppPrevious);$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) true + true true Provides abstractions for reading `.deps` files. When a .NET application is compiled, the SDK generates a JSON manifest file (`<ApplicationName>.deps.json`) that contains information about application dependencies. You can use `Microsoft.Extensions.DependencyModel` to read information from this manifest at run time. This is useful when you want to dynamically compile code (for example, using Roslyn Emit API) referencing the same dependencies as your main application. diff --git a/src/libraries/Microsoft.Extensions.HostFactoryResolver/src/Microsoft.Extensions.HostFactoryResolver.Sources.csproj b/src/libraries/Microsoft.Extensions.HostFactoryResolver/src/Microsoft.Extensions.HostFactoryResolver.Sources.csproj index 0a940e4066e638..67da9469413cf2 100644 --- a/src/libraries/Microsoft.Extensions.HostFactoryResolver/src/Microsoft.Extensions.HostFactoryResolver.Sources.csproj +++ b/src/libraries/Microsoft.Extensions.HostFactoryResolver/src/Microsoft.Extensions.HostFactoryResolver.Sources.csproj @@ -3,6 +3,7 @@ package infra globs for .cs files. --> netstandard2.0 + true true false true diff --git a/src/libraries/Microsoft.Extensions.Hosting.Abstractions/src/Extensions.CompatibilitySuppressions.xml b/src/libraries/Microsoft.Extensions.Hosting.Abstractions/src/Extensions.CompatibilitySuppressions.xml new file mode 100644 index 00000000000000..05c7980b18e71d --- /dev/null +++ b/src/libraries/Microsoft.Extensions.Hosting.Abstractions/src/Extensions.CompatibilitySuppressions.xml @@ -0,0 +1,11 @@ + + + + + CP0006 + M:Microsoft.Extensions.Hosting.IHostBuilder.UseServiceProviderFactory``1(System.Func{Microsoft.Extensions.Hosting.HostBuilderContext,Microsoft.Extensions.DependencyInjection.IServiceProviderFactory{``0}}) + lib/netstandard2.0/Microsoft.Extensions.Hosting.Abstractions.dll + lib/netstandard2.0/Microsoft.Extensions.Hosting.Abstractions.dll + true + + \ No newline at end of file diff --git a/src/libraries/Microsoft.Extensions.Hosting.Systemd/src/Microsoft.Extensions.Hosting.Systemd.csproj b/src/libraries/Microsoft.Extensions.Hosting.Systemd/src/Microsoft.Extensions.Hosting.Systemd.csproj index 0cde5d1ed3c045..1bf3ff81e63420 100644 --- a/src/libraries/Microsoft.Extensions.Hosting.Systemd/src/Microsoft.Extensions.Hosting.Systemd.csproj +++ b/src/libraries/Microsoft.Extensions.Hosting.Systemd/src/Microsoft.Extensions.Hosting.Systemd.csproj @@ -4,6 +4,7 @@ $(NetCoreAppCurrent);$(NetCoreAppPrevious);$(NetCoreAppMinimum);netstandard2.1 true true + true true .NET hosting infrastructure for Systemd Services. annotations diff --git a/src/libraries/Microsoft.Extensions.Hosting.WindowsServices/src/Microsoft.Extensions.Hosting.WindowsServices.csproj b/src/libraries/Microsoft.Extensions.Hosting.WindowsServices/src/Microsoft.Extensions.Hosting.WindowsServices.csproj index 827ed114b0cf64..1e5432646a9b46 100644 --- a/src/libraries/Microsoft.Extensions.Hosting.WindowsServices/src/Microsoft.Extensions.Hosting.WindowsServices.csproj +++ b/src/libraries/Microsoft.Extensions.Hosting.WindowsServices/src/Microsoft.Extensions.Hosting.WindowsServices.csproj @@ -3,6 +3,7 @@ $(NetCoreAppCurrent);$(NetCoreAppPrevious);$(NetCoreAppMinimum);netstandard2.1;netstandard2.0;$(NetFrameworkMinimum) true + true true .NET hosting infrastructure for Windows Services. true diff --git a/src/libraries/Microsoft.Extensions.Logging.Abstractions/ref/Microsoft.Extensions.Logging.Abstractions.cs b/src/libraries/Microsoft.Extensions.Logging.Abstractions/ref/Microsoft.Extensions.Logging.Abstractions.cs index cda5656c0fdced..72e6ae6afce77a 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Abstractions/ref/Microsoft.Extensions.Logging.Abstractions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Abstractions/ref/Microsoft.Extensions.Logging.Abstractions.cs @@ -196,42 +196,3 @@ public NullLogger() { } public void Log(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, TState state, System.Exception? exception, System.Func formatter) { } } } -namespace Microsoft.Extensions.Logging.Abstractions.Internal -{ - [System.ObsoleteAttribute("TODO")] - public partial class NullScope : System.IDisposable - { - internal NullScope() { } - public static Microsoft.Extensions.Logging.Abstractions.Internal.NullScope Instance { get { throw null; } } - public void Dispose() { } - } - [System.ObsoleteAttribute("TODO")] - public partial class TypeNameHelper - { - public TypeNameHelper() { } - public static string GetTypeDisplayName(System.Type type) { throw null; } - } -} -namespace Microsoft.Extensions.Logging.Internal -{ - [System.ObsoleteAttribute("TODO")] - public partial class FormattedLogValues : System.Collections.Generic.IEnumerable>, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyList>, System.Collections.IEnumerable - { - public FormattedLogValues(string format, params object[] values) { } - public int Count { get { throw null; } } - public System.Collections.Generic.KeyValuePair this[int index] { get { throw null; } } - public System.Collections.Generic.IEnumerator> GetEnumerator() { throw null; } - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { throw null; } - public override string ToString() { throw null; } - } - [System.ObsoleteAttribute("TODO")] - public partial class LogValuesFormatter - { - public LogValuesFormatter(string format) { } - public string OriginalFormat { get { throw null; } } - public System.Collections.Generic.List ValueNames { get { throw null; } } - public string Format(object[] values) { throw null; } - public System.Collections.Generic.KeyValuePair GetValue(object[] values, int index) { throw null; } - public System.Collections.Generic.IEnumerable> GetValues(object[] values) { throw null; } - } -} diff --git a/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/Extensions.CompatibilitySuppressions.xml b/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/Extensions.CompatibilitySuppressions.xml new file mode 100644 index 00000000000000..5495b652bf8ebc --- /dev/null +++ b/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/Extensions.CompatibilitySuppressions.xml @@ -0,0 +1,32 @@ + + + + + CP0001 + T:Microsoft.Extensions.Logging.Abstractions.Internal.NullScope + lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll + true + + + CP0001 + T:Microsoft.Extensions.Logging.Abstractions.Internal.TypeNameHelper + lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll + true + + + CP0001 + T:Microsoft.Extensions.Logging.Internal.FormattedLogValues + lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll + true + + + CP0001 + T:Microsoft.Extensions.Logging.Internal.LogValuesFormatter + lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll + true + + \ No newline at end of file diff --git a/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/Obsolete.cs b/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/Obsolete.cs deleted file mode 100644 index d770eeb1c69456..00000000000000 --- a/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/Obsolete.cs +++ /dev/null @@ -1,63 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Collections; -using System.Collections.Generic; - -namespace Microsoft.Extensions.Logging.Abstractions.Internal -{ - [System.Obsolete("TODO")] - public partial class NullScope : IDisposable - { - internal NullScope() { } - - public static NullScope Instance { get; } = new NullScope(); - - public void Dispose() { } - } - - [System.Obsolete("TODO")] - public partial class TypeNameHelper - { - public TypeNameHelper() { } - - public static string GetTypeDisplayName(System.Type type) => - Microsoft.Extensions.Internal.TypeNameHelper.GetTypeDisplayName(type); - } -} - -namespace Microsoft.Extensions.Logging.Internal -{ - [System.Obsolete("TODO")] - public partial class FormattedLogValues : IReadOnlyList> - { - public FormattedLogValues(string format, params object[] values) { } - - public int Count { get { throw new NotImplementedException(); } } - - public KeyValuePair this[int index] { get { throw new NotImplementedException(); } } - - public IEnumerator> GetEnumerator() { throw new NotImplementedException(); } - - IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); - - public override string ToString() { throw new NotImplementedException(); } - } - - [System.Obsolete("TODO")] - public partial class LogValuesFormatter - { - public LogValuesFormatter(string format) { } - - public string OriginalFormat { get { throw new NotImplementedException(); } } - - public List ValueNames { get { throw new NotImplementedException(); } } - - public string Format(object[] values) { throw new NotImplementedException(); } - - public KeyValuePair GetValue(object[] values, int index) { throw new NotImplementedException(); } - - public IEnumerable> GetValues(object[] values) { throw new NotImplementedException(); } - } -} diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.cs b/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.cs index 299d3b43b387cf..cbfdecd94c3b37 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.cs @@ -72,15 +72,6 @@ public ConsoleFormatterOptions() { } public string? TimestampFormat { get { throw null; } set { } } public bool UseUtcTimestamp { get { throw null; } set { } } } - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] - public sealed partial class ConsoleLogger : Microsoft.Extensions.Logging.ILogger - { - internal ConsoleLogger() { } - public System.IDisposable BeginScope(TState state) where TState : notnull { throw null; } - public bool IsEnabled(Microsoft.Extensions.Logging.LogLevel logLevel) { throw null; } - public void Log(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, TState state, System.Exception? exception, System.Func formatter) { } - } [System.ObsoleteAttribute("ConsoleLoggerFormat has been deprecated.")] public enum ConsoleLoggerFormat { @@ -138,15 +129,6 @@ public ConsoleLoggerSettings() { } public bool TryGetSwitch(string name, out Microsoft.Extensions.Logging.LogLevel level) { throw null; } } [System.ObsoleteAttribute("TODO")] - public partial class ConsoleLogScope - { - internal ConsoleLogScope() { } - public static Microsoft.Extensions.Logging.Console.ConsoleLogScope Current { get { throw null; } set { } } - public Microsoft.Extensions.Logging.Console.ConsoleLogScope Parent { get { throw null; } } - public static System.IDisposable Push(string name, object state) { throw null; } - public override string ToString() { throw null; } - } - [System.ObsoleteAttribute("TODO")] public partial interface IConsoleLoggerSettings { Microsoft.Extensions.Primitives.IChangeToken ChangeToken { get; } @@ -172,53 +154,3 @@ public SimpleConsoleFormatterOptions() { } public bool SingleLine { get { throw null; } set { } } } } -namespace Microsoft.Extensions.Logging.Console.Internal -{ - [System.ObsoleteAttribute("TODO")] - public partial class AnsiLogConsole : Microsoft.Extensions.Logging.Console.Internal.IConsole - { - public AnsiLogConsole(Microsoft.Extensions.Logging.Console.Internal.IAnsiSystemConsole systemConsole) { } - public void Flush() { } - public void Write(string message, System.ConsoleColor? background, System.ConsoleColor? foreground) { } - public void WriteLine(string message, System.ConsoleColor? background, System.ConsoleColor? foreground) { } - } - [System.ObsoleteAttribute("TODO")] - public partial class ConsoleLoggerProcessor - { - public Microsoft.Extensions.Logging.Console.Internal.IConsole Console; - public ConsoleLoggerProcessor() { } - public void Dispose() { } - public virtual void EnqueueMessage(Microsoft.Extensions.Logging.Console.Internal.LogMessageEntry message) { } - } - [System.ObsoleteAttribute("TODO")] - public partial interface IAnsiSystemConsole - { - void Write(string message); - void WriteLine(string message); - } - [System.ObsoleteAttribute("TODO")] - public partial interface IConsole - { - void Flush(); - void Write(string message, System.ConsoleColor? background, System.ConsoleColor? foreground); - void WriteLine(string message, System.ConsoleColor? background, System.ConsoleColor? foreground); - } - [System.ObsoleteAttribute("TODO")] - public sealed partial class LogMessageEntry - { - internal LogMessageEntry() { } - public System.ConsoleColor? LevelBackground; - public System.ConsoleColor? LevelForeground; - public string LevelString; - public string Message; - public System.ConsoleColor? MessageColor; - } - [System.ObsoleteAttribute("TODO")] - public partial class WindowsLogConsole : Microsoft.Extensions.Logging.Console.Internal.IConsole - { - public WindowsLogConsole() { } - public void Flush() { } - public void Write(string message, System.ConsoleColor? background, System.ConsoleColor? foreground) { } - public void WriteLine(string message, System.ConsoleColor? background, System.ConsoleColor? foreground) { } - } -} diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLogger.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLogger.cs index 1e8a73c496c95a..3a542e6063635b 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLogger.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLogger.cs @@ -2,7 +2,6 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; -using System.ComponentModel; using System.Diagnostics.CodeAnalysis; using System.IO; using System.Runtime.Versioning; @@ -14,8 +13,7 @@ namespace Microsoft.Extensions.Logging.Console /// A logger that writes messages in the console. /// [UnsupportedOSPlatform("browser")] - [EditorBrowsable(EditorBrowsableState.Never)] - public sealed class ConsoleLogger : ILogger + internal sealed class ConsoleLogger : ILogger { private readonly string _name; private readonly ConsoleLoggerProcessor _queueProcessor; diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/Extensions.CompatibilitySuppressions.xml b/src/libraries/Microsoft.Extensions.Logging.Console/src/Extensions.CompatibilitySuppressions.xml new file mode 100644 index 00000000000000..9fca730910c567 --- /dev/null +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/Extensions.CompatibilitySuppressions.xml @@ -0,0 +1,60 @@ + + + + + CP0001 + T:Microsoft.Extensions.Logging.Console.ConsoleLogger + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + true + + + CP0001 + T:Microsoft.Extensions.Logging.Console.ConsoleLogScope + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + true + + + CP0001 + T:Microsoft.Extensions.Logging.Console.Internal.AnsiLogConsole + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + true + + + CP0001 + T:Microsoft.Extensions.Logging.Console.Internal.ConsoleLoggerProcessor + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + true + + + CP0001 + T:Microsoft.Extensions.Logging.Console.Internal.IAnsiSystemConsole + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + true + + + CP0001 + T:Microsoft.Extensions.Logging.Console.Internal.IConsole + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + true + + + CP0001 + T:Microsoft.Extensions.Logging.Console.Internal.LogMessageEntry + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + true + + + CP0001 + T:Microsoft.Extensions.Logging.Console.Internal.WindowsLogConsole + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + true + + \ No newline at end of file diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/Obsolete.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/Obsolete.cs index ed46ce5a11178c..0d3c38b24ea2b7 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/Obsolete.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/Obsolete.cs @@ -38,20 +38,6 @@ public partial class ConsoleLoggerSettings : IConsoleLoggerSettings public bool TryGetSwitch(string name, out Logging.LogLevel level) { throw new NotImplementedException(); } } - [System.Obsolete("TODO")] - public partial class ConsoleLogScope - { - internal ConsoleLogScope() { throw new NotImplementedException(); } - - public static ConsoleLogScope Current { get { throw new NotImplementedException(); } set { throw new NotImplementedException(); } } - - public ConsoleLogScope Parent { get { throw new NotImplementedException(); } } - - public static System.IDisposable Push(string name, object state) { throw new NotImplementedException(); } - - public override string ToString() { throw new NotImplementedException(); } - } - [System.Obsolete("TODO")] public partial interface IConsoleLoggerSettings { @@ -63,68 +49,3 @@ public partial interface IConsoleLoggerSettings bool TryGetSwitch(string name, out Logging.LogLevel level); } } - -namespace Microsoft.Extensions.Logging.Console.Internal -{ - [System.Obsolete("TODO")] - public partial class AnsiLogConsole : IConsole - { - public AnsiLogConsole(IAnsiSystemConsole systemConsole) { throw new NotImplementedException(); } - - public void Flush() { throw new NotImplementedException(); } - - public void Write(string message, System.Nullable background, System.Nullable foreground) { throw new NotImplementedException(); } - - public void WriteLine(string message, System.Nullable background, System.Nullable foreground) { throw new NotImplementedException(); } - } - - [System.Obsolete("TODO")] - public partial class ConsoleLoggerProcessor - { - public IConsole Console; - public ConsoleLoggerProcessor() { throw new NotImplementedException(); } - - public void Dispose() { throw new NotImplementedException(); } - - public virtual void EnqueueMessage(LogMessageEntry message) { throw new NotImplementedException(); } - } - - [System.Obsolete("TODO")] - public partial interface IAnsiSystemConsole - { - void Write(string message); - void WriteLine(string message); - } - - [System.Obsolete("TODO")] - public partial interface IConsole - { - void Flush(); - void Write(string message, System.Nullable background, System.Nullable foreground); - void WriteLine(string message, System.Nullable background, System.Nullable foreground); - } - - [System.Obsolete("TODO")] - public sealed partial class LogMessageEntry - { - internal LogMessageEntry() { throw new NotImplementedException(); } - - public System.Nullable LevelBackground; - public System.Nullable LevelForeground; - public string LevelString; - public string Message; - public System.Nullable MessageColor; - } - - [System.Obsolete("TODO")] - public partial class WindowsLogConsole : IConsole - { - public WindowsLogConsole() { throw new NotImplementedException(); } - - public void Flush() { throw new NotImplementedException(); } - - public void Write(string message, System.Nullable background, System.Nullable foreground) { throw new NotImplementedException(); } - - public void WriteLine(string message, System.Nullable background, System.Nullable foreground) { throw new NotImplementedException(); } - } -} diff --git a/src/libraries/Microsoft.Extensions.Logging.Debug/ref/Microsoft.Extensions.Logging.Debug.cs b/src/libraries/Microsoft.Extensions.Logging.Debug/ref/Microsoft.Extensions.Logging.Debug.cs index 410e66c8dfc7ca..419abf4c5c0fa5 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Debug/ref/Microsoft.Extensions.Logging.Debug.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Debug/ref/Microsoft.Extensions.Logging.Debug.cs @@ -19,14 +19,6 @@ public static partial class DebugLoggerFactoryExtensions } namespace Microsoft.Extensions.Logging.Debug { - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - public sealed partial class DebugLogger : Microsoft.Extensions.Logging.ILogger - { - public DebugLogger(string name) { } - public System.IDisposable BeginScope(TState state) where TState : notnull { throw null; } - public bool IsEnabled(Microsoft.Extensions.Logging.LogLevel logLevel) { throw null; } - public void Log(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, TState state, System.Exception? exception, System.Func formatter) { } - } [Microsoft.Extensions.Logging.ProviderAliasAttribute("Debug")] public partial class DebugLoggerProvider : Microsoft.Extensions.Logging.ILoggerProvider, System.IDisposable { diff --git a/src/libraries/Microsoft.Extensions.Logging.Debug/src/DebugLogger.cs b/src/libraries/Microsoft.Extensions.Logging.Debug/src/DebugLogger.cs index 2d6a2026a3a46a..f84e641ace3ddd 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Debug/src/DebugLogger.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Debug/src/DebugLogger.cs @@ -2,7 +2,6 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; -using System.ComponentModel; using System.Diagnostics; namespace Microsoft.Extensions.Logging.Debug @@ -10,8 +9,7 @@ namespace Microsoft.Extensions.Logging.Debug /// /// A logger that writes messages in the debug output window only when a debugger is attached. /// - [EditorBrowsable(EditorBrowsableState.Never)] - public sealed partial class DebugLogger : ILogger + internal sealed partial class DebugLogger : ILogger { private readonly string _name; diff --git a/src/libraries/Microsoft.Extensions.Logging.Debug/src/DebugLogger.debug.cs b/src/libraries/Microsoft.Extensions.Logging.Debug/src/DebugLogger.debug.cs index 0ea739be74c7a8..c54d85f4c1f849 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Debug/src/DebugLogger.debug.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Debug/src/DebugLogger.debug.cs @@ -8,7 +8,7 @@ namespace Microsoft.Extensions.Logging.Debug { - public sealed partial class DebugLogger + internal sealed partial class DebugLogger { private static void DebugWriteLine(string message, string name) { diff --git a/src/libraries/Microsoft.Extensions.Logging.Debug/src/Extensions.CompatibilitySuppressions.xml b/src/libraries/Microsoft.Extensions.Logging.Debug/src/Extensions.CompatibilitySuppressions.xml new file mode 100644 index 00000000000000..97df050202e5b5 --- /dev/null +++ b/src/libraries/Microsoft.Extensions.Logging.Debug/src/Extensions.CompatibilitySuppressions.xml @@ -0,0 +1,18 @@ + + + + + CP0001 + T:Microsoft.Extensions.Logging.Debug.DebugLogger + lib/netstandard2.0/Microsoft.Extensions.Logging.Debug.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.Debug.dll + true + + + CP0002 + M:Microsoft.Extensions.Logging.Debug.DebugLoggerProvider.#ctor(System.Func{System.String,Microsoft.Extensions.Logging.LogLevel,System.Boolean}) + lib/netstandard2.0/Microsoft.Extensions.Logging.Debug.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.Debug.dll + true + + \ No newline at end of file diff --git a/src/libraries/Microsoft.Extensions.Logging.EventLog/ref/Microsoft.Extensions.Logging.EventLog.cs b/src/libraries/Microsoft.Extensions.Logging.EventLog/ref/Microsoft.Extensions.Logging.EventLog.cs index 77f3e07028b39b..bce6851087299c 100644 --- a/src/libraries/Microsoft.Extensions.Logging.EventLog/ref/Microsoft.Extensions.Logging.EventLog.cs +++ b/src/libraries/Microsoft.Extensions.Logging.EventLog/ref/Microsoft.Extensions.Logging.EventLog.cs @@ -21,15 +21,6 @@ public static partial class EventLoggerFactoryExtensions } namespace Microsoft.Extensions.Logging.EventLog { - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - public sealed partial class EventLogLogger : Microsoft.Extensions.Logging.ILogger - { - public EventLogLogger(string name, Microsoft.Extensions.Logging.EventLog.EventLogSettings settings, Microsoft.Extensions.Logging.IExternalScopeProvider? externalScopeProvider) { } - public Microsoft.Extensions.Logging.EventLog.Internal.IEventLog EventLog { get { throw null; } } - public System.IDisposable? BeginScope(TState state) where TState : notnull { throw null; } - public bool IsEnabled(Microsoft.Extensions.Logging.LogLevel logLevel) { throw null; } - public void Log(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, TState state, System.Exception? exception, System.Func formatter) { } - } [Microsoft.Extensions.Logging.ProviderAliasAttribute("EventLog")] public partial class EventLogLoggerProvider : Microsoft.Extensions.Logging.ILoggerProvider, Microsoft.Extensions.Logging.ISupportExternalScope, System.IDisposable { @@ -43,31 +34,9 @@ public void SetScopeProvider(Microsoft.Extensions.Logging.IExternalScopeProvider public partial class EventLogSettings { public EventLogSettings() { } - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - public Microsoft.Extensions.Logging.EventLog.Internal.IEventLog EventLog { get { throw null; } set { } } public System.Func? Filter { get { throw null; } set { } } public string? LogName { get { throw null; } set { } } public string? MachineName { get { throw null; } set { } } public string? SourceName { get { throw null; } set { } } } - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] - public sealed partial class WindowsEventLog : Microsoft.Extensions.Logging.EventLog.Internal.IEventLog - { - public WindowsEventLog(string logName, string machineName, string sourceName) { } - public int? DefaultEventId { get { throw null; } set { } } - public System.Diagnostics.EventLog DiagnosticsEventLog { get { throw null; } } - public int MaxMessageSize { get { throw null; } } - public void WriteEntry(string message, System.Diagnostics.EventLogEntryType type, int eventID, short category) { } - } -} -namespace Microsoft.Extensions.Logging.EventLog.Internal -{ - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - public partial interface IEventLog - { - int? DefaultEventId { get; } - int MaxMessageSize { get; } - void WriteEntry(string message, System.Diagnostics.EventLogEntryType type, int eventID, short category); - } } diff --git a/src/libraries/Microsoft.Extensions.Logging.EventLog/src/EventLogLogger.cs b/src/libraries/Microsoft.Extensions.Logging.EventLog/src/EventLogLogger.cs index a0983885d0dc83..a5d6e6a6a3c5ad 100644 --- a/src/libraries/Microsoft.Extensions.Logging.EventLog/src/EventLogLogger.cs +++ b/src/libraries/Microsoft.Extensions.Logging.EventLog/src/EventLogLogger.cs @@ -2,7 +2,6 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; -using System.ComponentModel; using System.Collections.Generic; using System.Diagnostics; using System.Text; @@ -12,8 +11,7 @@ namespace Microsoft.Extensions.Logging.EventLog /// /// A logger that writes messages to Windows Event Log. /// - [EditorBrowsable(EditorBrowsableState.Never)] - public sealed class EventLogLogger : ILogger + internal sealed class EventLogLogger : ILogger { private readonly string _name; private readonly EventLogSettings _settings; @@ -53,7 +51,7 @@ public EventLogLogger(string name, EventLogSettings settings, IExternalScopeProv /// /// The event log. /// - public Internal.IEventLog EventLog { get; } + public IEventLog EventLog { get; } /// public IDisposable? BeginScope(TState state) where TState : notnull diff --git a/src/libraries/Microsoft.Extensions.Logging.EventLog/src/EventLogSettings.cs b/src/libraries/Microsoft.Extensions.Logging.EventLog/src/EventLogSettings.cs index 8bff64a05f08c5..ea5b4340f6c75b 100644 --- a/src/libraries/Microsoft.Extensions.Logging.EventLog/src/EventLogSettings.cs +++ b/src/libraries/Microsoft.Extensions.Logging.EventLog/src/EventLogSettings.cs @@ -2,7 +2,6 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; -using System.ComponentModel; namespace Microsoft.Extensions.Logging.EventLog { @@ -11,7 +10,7 @@ namespace Microsoft.Extensions.Logging.EventLog /// public class EventLogSettings { - private Internal.IEventLog? _eventLog; + private IEventLog? _eventLog; /// /// Name of the event log. If null or not specified, "Application" is the default. @@ -33,8 +32,7 @@ public class EventLogSettings /// public Func? Filter { get; set; } - [EditorBrowsable(EditorBrowsableState.Never)] - public Internal.IEventLog EventLog + internal IEventLog EventLog { get => _eventLog ??= CreateDefaultEventLog(); diff --git a/src/libraries/Microsoft.Extensions.Logging.EventLog/src/Extensions.CompatibilitySuppressions.xml b/src/libraries/Microsoft.Extensions.Logging.EventLog/src/Extensions.CompatibilitySuppressions.xml new file mode 100644 index 00000000000000..0cb79d7c48f5f7 --- /dev/null +++ b/src/libraries/Microsoft.Extensions.Logging.EventLog/src/Extensions.CompatibilitySuppressions.xml @@ -0,0 +1,74 @@ + + + + + CP0001 + T:Microsoft.Extensions.Logging.EventLog.EventLogLogger + lib/net461/Microsoft.Extensions.Logging.EventLog.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll + true + + + CP0001 + T:Microsoft.Extensions.Logging.EventLog.Internal.IEventLog + lib/net461/Microsoft.Extensions.Logging.EventLog.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll + true + + + CP0001 + T:Microsoft.Extensions.Logging.EventLog.WindowsEventLog + lib/net461/Microsoft.Extensions.Logging.EventLog.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll + true + + + CP0001 + T:Microsoft.Extensions.Logging.EventLog.EventLogLogger + lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll + true + + + CP0001 + T:Microsoft.Extensions.Logging.EventLog.Internal.IEventLog + lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll + true + + + CP0001 + T:Microsoft.Extensions.Logging.EventLog.WindowsEventLog + lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll + true + + + CP0002 + M:Microsoft.Extensions.Logging.EventLog.EventLogSettings.get_EventLog + lib/net461/Microsoft.Extensions.Logging.EventLog.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll + true + + + CP0002 + M:Microsoft.Extensions.Logging.EventLog.EventLogSettings.set_EventLog(Microsoft.Extensions.Logging.EventLog.Internal.IEventLog) + lib/net461/Microsoft.Extensions.Logging.EventLog.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll + true + + + CP0002 + M:Microsoft.Extensions.Logging.EventLog.EventLogSettings.get_EventLog + lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll + true + + + CP0002 + M:Microsoft.Extensions.Logging.EventLog.EventLogSettings.set_EventLog(Microsoft.Extensions.Logging.EventLog.Internal.IEventLog) + lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll + true + + \ No newline at end of file diff --git a/src/libraries/Microsoft.Extensions.Logging.EventLog/src/IEventLog.cs b/src/libraries/Microsoft.Extensions.Logging.EventLog/src/IEventLog.cs index 0ae51228c3958e..2c83fa194e6bbc 100644 --- a/src/libraries/Microsoft.Extensions.Logging.EventLog/src/IEventLog.cs +++ b/src/libraries/Microsoft.Extensions.Logging.EventLog/src/IEventLog.cs @@ -1,13 +1,11 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System.ComponentModel; using System.Diagnostics; -namespace Microsoft.Extensions.Logging.EventLog.Internal +namespace Microsoft.Extensions.Logging.EventLog { - [EditorBrowsable(EditorBrowsableState.Never)] - public interface IEventLog + internal interface IEventLog { int? DefaultEventId { get; } diff --git a/src/libraries/Microsoft.Extensions.Logging.EventLog/src/WindowsEventLog.cs b/src/libraries/Microsoft.Extensions.Logging.EventLog/src/WindowsEventLog.cs index 7f156e738477a0..a43f74614a70ab 100644 --- a/src/libraries/Microsoft.Extensions.Logging.EventLog/src/WindowsEventLog.cs +++ b/src/libraries/Microsoft.Extensions.Logging.EventLog/src/WindowsEventLog.cs @@ -2,7 +2,6 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; -using System.ComponentModel; using System.Diagnostics; using System.Security; using System.Runtime.Versioning; @@ -13,8 +12,7 @@ namespace Microsoft.Extensions.Logging.EventLog /// The windows event log. /// [SupportedOSPlatform("windows")] - [EditorBrowsable(EditorBrowsableState.Never)] - public sealed class WindowsEventLog : Internal.IEventLog + internal sealed class WindowsEventLog : IEventLog { // https://msdn.microsoft.com/EN-US/library/windows/desktop/aa363679.aspx private const int MaximumMessageSize = 31839; diff --git a/src/libraries/Microsoft.Extensions.Logging.TraceSource/ref/Microsoft.Extensions.Logging.TraceSource.cs b/src/libraries/Microsoft.Extensions.Logging.TraceSource/ref/Microsoft.Extensions.Logging.TraceSource.cs index b955b3e46cd148..7584cb286476b9 100644 --- a/src/libraries/Microsoft.Extensions.Logging.TraceSource/ref/Microsoft.Extensions.Logging.TraceSource.cs +++ b/src/libraries/Microsoft.Extensions.Logging.TraceSource/ref/Microsoft.Extensions.Logging.TraceSource.cs @@ -24,14 +24,6 @@ public static partial class TraceSourceFactoryExtensions } namespace Microsoft.Extensions.Logging.TraceSource { - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - public sealed partial class TraceSourceLogger : Microsoft.Extensions.Logging.ILogger - { - public TraceSourceLogger(System.Diagnostics.TraceSource traceSource) { } - public System.IDisposable BeginScope(TState state) where TState : notnull { throw null; } - public bool IsEnabled(Microsoft.Extensions.Logging.LogLevel logLevel) { throw null; } - public void Log(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, TState state, System.Exception? exception, System.Func formatter) { } - } [Microsoft.Extensions.Logging.ProviderAliasAttribute("TraceSource")] public partial class TraceSourceLoggerProvider : Microsoft.Extensions.Logging.ILoggerProvider, System.IDisposable { @@ -40,10 +32,4 @@ public TraceSourceLoggerProvider(System.Diagnostics.SourceSwitch rootSourceSwitc public Microsoft.Extensions.Logging.ILogger CreateLogger(string name) { throw null; } public void Dispose() { } } - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - public sealed partial class TraceSourceScope : System.IDisposable - { - public TraceSourceScope(object state) { } - public void Dispose() { } - } } diff --git a/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/Extensions.CompatibilitySuppressions.xml b/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/Extensions.CompatibilitySuppressions.xml new file mode 100644 index 00000000000000..23ad99b2857c75 --- /dev/null +++ b/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/Extensions.CompatibilitySuppressions.xml @@ -0,0 +1,18 @@ + + + + + CP0001 + T:Microsoft.Extensions.Logging.TraceSource.TraceSourceLogger + lib/netstandard2.0/Microsoft.Extensions.Logging.TraceSource.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.TraceSource.dll + true + + + CP0001 + T:Microsoft.Extensions.Logging.TraceSource.TraceSourceScope + lib/netstandard2.0/Microsoft.Extensions.Logging.TraceSource.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.TraceSource.dll + true + + \ No newline at end of file diff --git a/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/TraceSourceLogger.cs b/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/TraceSourceLogger.cs index ba4d2fd5364777..7d94f25821f195 100644 --- a/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/TraceSourceLogger.cs +++ b/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/TraceSourceLogger.cs @@ -2,7 +2,6 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; -using System.ComponentModel; using System.Diagnostics; using DiagnosticsTraceSource = System.Diagnostics.TraceSource; @@ -11,8 +10,7 @@ namespace Microsoft.Extensions.Logging.TraceSource /// /// A logger that writes a trace source log message. /// - [EditorBrowsable(EditorBrowsableState.Never)] - public sealed class TraceSourceLogger : ILogger + internal sealed class TraceSourceLogger : ILogger { private readonly DiagnosticsTraceSource _traceSource; diff --git a/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/TraceSourceScope.cs b/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/TraceSourceScope.cs index 2c850eb1d2fa8a..80ecc8844e8213 100644 --- a/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/TraceSourceScope.cs +++ b/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/TraceSourceScope.cs @@ -2,7 +2,6 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; -using System.ComponentModel; using System.Diagnostics; namespace Microsoft.Extensions.Logging.TraceSource @@ -10,8 +9,7 @@ namespace Microsoft.Extensions.Logging.TraceSource /// /// Provides an IDisposable that represents a logical operation scope based on System.Diagnostics LogicalOperationStack /// - [EditorBrowsable(EditorBrowsableState.Never)] - public sealed class TraceSourceScope : IDisposable + internal sealed class TraceSourceScope : IDisposable { // To detect redundant calls private bool _isDisposed; diff --git a/src/libraries/Microsoft.Extensions.Logging/tests/Common/EventLogLoggerTest.cs b/src/libraries/Microsoft.Extensions.Logging/tests/Common/EventLogLoggerTest.cs index 61997bd9f12cd7..88dbc4c4b8ec56 100644 --- a/src/libraries/Microsoft.Extensions.Logging/tests/Common/EventLogLoggerTest.cs +++ b/src/libraries/Microsoft.Extensions.Logging/tests/Common/EventLogLoggerTest.cs @@ -7,7 +7,6 @@ using System.Linq; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging.EventLog; -using Microsoft.Extensions.Logging.EventLog.Internal; using Xunit; namespace Microsoft.Extensions.Logging From 3e69333806dc3b9fe623ca8dab51f9d463863e45 Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Tue, 9 May 2023 22:54:21 -0700 Subject: [PATCH 07/21] Implement obsolete console API --- .../Microsoft.Extensions.Logging.Console.cs | 34 ++++---- .../src/ConfigurationConsoleLoggerSettings.cs | 77 ++++++++++++++++++ .../src/ConsoleLoggerExtensions.Obsolete.cs | 68 ++++++++++++++++ .../src/ConsoleLoggerExtensions.cs | 26 +----- .../src/ConsoleLoggerProvider.Obsolete.cs | 79 +++++++++++++++++++ .../src/ConsoleLoggerProvider.cs | 11 +-- .../src/ConsoleLoggerSettings.cs | 31 ++++++++ .../src/IConsoleLoggerSettings.cs | 20 +++++ .../src/Obsolete.cs | 51 ------------ 9 files changed, 294 insertions(+), 103 deletions(-) create mode 100644 src/libraries/Microsoft.Extensions.Logging.Console/src/ConfigurationConsoleLoggerSettings.cs create mode 100644 src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.Obsolete.cs create mode 100644 src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.Obsolete.cs create mode 100644 src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerSettings.cs create mode 100644 src/libraries/Microsoft.Extensions.Logging.Console/src/IConsoleLoggerSettings.cs delete mode 100644 src/libraries/Microsoft.Extensions.Logging.Console/src/Obsolete.cs diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.cs b/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.cs index cbfdecd94c3b37..dda68fec202278 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.cs @@ -9,21 +9,21 @@ namespace Microsoft.Extensions.Logging [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static partial class ConsoleLoggerExtensions { - [System.ObsoleteAttribute("TODO")] + [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).")] public static Microsoft.Extensions.Logging.ILoggerFactory AddConsole(this Microsoft.Extensions.Logging.ILoggerFactory factory) { throw null; } - [System.ObsoleteAttribute("TODO")] + [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).")] public static Microsoft.Extensions.Logging.ILoggerFactory AddConsole(this Microsoft.Extensions.Logging.ILoggerFactory factory, Microsoft.Extensions.Configuration.IConfiguration configuration) { throw null; } - [System.ObsoleteAttribute("TODO")] + [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).")] public static Microsoft.Extensions.Logging.ILoggerFactory AddConsole(this Microsoft.Extensions.Logging.ILoggerFactory factory, Microsoft.Extensions.Logging.Console.IConsoleLoggerSettings settings) { throw null; } - [System.ObsoleteAttribute("TODO")] + [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).")] public static Microsoft.Extensions.Logging.ILoggerFactory AddConsole(this Microsoft.Extensions.Logging.ILoggerFactory factory, Microsoft.Extensions.Logging.LogLevel minLevel) { throw null; } - [System.ObsoleteAttribute("TODO")] + [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).")] public static Microsoft.Extensions.Logging.ILoggerFactory AddConsole(this Microsoft.Extensions.Logging.ILoggerFactory factory, Microsoft.Extensions.Logging.LogLevel minLevel, bool includeScopes) { throw null; } - [System.ObsoleteAttribute("TODO")] + [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).")] public static Microsoft.Extensions.Logging.ILoggerFactory AddConsole(this Microsoft.Extensions.Logging.ILoggerFactory factory, bool includeScopes) { throw null; } - [System.ObsoleteAttribute("TODO")] + [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).")] public static Microsoft.Extensions.Logging.ILoggerFactory AddConsole(this Microsoft.Extensions.Logging.ILoggerFactory factory, System.Func filter) { throw null; } - [System.ObsoleteAttribute("TODO")] + [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).")] public static Microsoft.Extensions.Logging.ILoggerFactory AddConsole(this Microsoft.Extensions.Logging.ILoggerFactory factory, System.Func filter, bool includeScopes) { throw null; } public static Microsoft.Extensions.Logging.ILoggingBuilder AddConsole(this Microsoft.Extensions.Logging.ILoggingBuilder builder) { throw null; } public static Microsoft.Extensions.Logging.ILoggingBuilder AddConsole(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Action configure) { throw null; } @@ -43,11 +43,11 @@ public static partial class ConsoleLoggerExtensions } namespace Microsoft.Extensions.Logging.Console { - [System.ObsoleteAttribute("TODO")] + [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is ConsoleLoggerOptions.")] public partial class ConfigurationConsoleLoggerSettings : Microsoft.Extensions.Logging.Console.IConsoleLoggerSettings { public ConfigurationConsoleLoggerSettings(Microsoft.Extensions.Configuration.IConfiguration configuration) { } - public Microsoft.Extensions.Primitives.IChangeToken ChangeToken { get { throw null; } } + public Microsoft.Extensions.Primitives.IChangeToken? ChangeToken { get { throw null; } } public bool IncludeScopes { get { throw null; } } public Microsoft.Extensions.Logging.Console.IConsoleLoggerSettings Reload() { throw null; } public bool TryGetSwitch(string name, out Microsoft.Extensions.Logging.LogLevel level) { throw null; } @@ -100,13 +100,13 @@ public ConsoleLoggerOptions() { } [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public partial class ConsoleLoggerProvider : Microsoft.Extensions.Logging.ILoggerProvider, Microsoft.Extensions.Logging.ISupportExternalScope, System.IDisposable { - [System.ObsoleteAttribute("TODO")] + [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is using LoggerFactory to configure filtering and ConsoleLoggerOptions to configure logging options.")] public ConsoleLoggerProvider(Microsoft.Extensions.Logging.Console.IConsoleLoggerSettings settings) { } public ConsoleLoggerProvider(Microsoft.Extensions.Options.IOptionsMonitor options) { } public ConsoleLoggerProvider(Microsoft.Extensions.Options.IOptionsMonitor options, System.Collections.Generic.IEnumerable? formatters) { } - [System.ObsoleteAttribute("TODO")] + [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is using LoggerFactory to configure filtering and ConsoleLoggerOptions to configure logging options.")] public ConsoleLoggerProvider(System.Func filter, bool includeScopes) { } - [System.ObsoleteAttribute("TODO")] + [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is using LoggerFactory to configure filtering and ConsoleLoggerOptions to configure logging options.")] public ConsoleLoggerProvider(System.Func filter, bool includeScopes, bool disableColors) { } public Microsoft.Extensions.Logging.ILogger CreateLogger(string name) { throw null; } public void Dispose() { } @@ -117,21 +117,21 @@ public enum ConsoleLoggerQueueFullMode Wait = 0, DropWrite = 1, } - [System.ObsoleteAttribute("TODO")] + [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is ConsoleLoggerOptions.")] public partial class ConsoleLoggerSettings : Microsoft.Extensions.Logging.Console.IConsoleLoggerSettings { public ConsoleLoggerSettings() { } - public Microsoft.Extensions.Primitives.IChangeToken ChangeToken { get { throw null; } set { } } + public Microsoft.Extensions.Primitives.IChangeToken? ChangeToken { get { throw null; } set { } } public bool DisableColors { get { throw null; } set { } } public bool IncludeScopes { get { throw null; } set { } } public System.Collections.Generic.IDictionary Switches { get { throw null; } set { } } public Microsoft.Extensions.Logging.Console.IConsoleLoggerSettings Reload() { throw null; } public bool TryGetSwitch(string name, out Microsoft.Extensions.Logging.LogLevel level) { throw null; } } - [System.ObsoleteAttribute("TODO")] + [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is ConsoleLoggerOptions.")] public partial interface IConsoleLoggerSettings { - Microsoft.Extensions.Primitives.IChangeToken ChangeToken { get; } + Microsoft.Extensions.Primitives.IChangeToken? ChangeToken { get; } bool IncludeScopes { get; } Microsoft.Extensions.Logging.Console.IConsoleLoggerSettings Reload(); bool TryGetSwitch(string name, out Microsoft.Extensions.Logging.LogLevel level); diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConfigurationConsoleLoggerSettings.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConfigurationConsoleLoggerSettings.cs new file mode 100644 index 00000000000000..376caeb391ae5c --- /dev/null +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConfigurationConsoleLoggerSettings.cs @@ -0,0 +1,77 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Primitives; + +namespace Microsoft.Extensions.Logging.Console +{ + [Obsolete("This method is retained only for compatibility. The recommended alternative is ConsoleLoggerOptions.")] + public class ConfigurationConsoleLoggerSettings : IConsoleLoggerSettings + { + internal readonly IConfiguration _configuration; + + public ConfigurationConsoleLoggerSettings(IConfiguration configuration) + { + _configuration = configuration; + ChangeToken = configuration.GetReloadToken(); + } + + public IChangeToken? ChangeToken { get; private set; } + + public bool IncludeScopes + { + get + { + bool includeScopes; + var value = _configuration["IncludeScopes"]; + if (string.IsNullOrEmpty(value)) + { + return false; + } + else if (bool.TryParse(value, out includeScopes)) + { + return includeScopes; + } + else + { + var message = $"Configuration value '{value}' for setting '{nameof(IncludeScopes)}' is not supported."; + throw new InvalidOperationException(message); + } + } + } + + public IConsoleLoggerSettings Reload() + { + ChangeToken = null!; + return new ConfigurationConsoleLoggerSettings(_configuration); + } + + public bool TryGetSwitch(string name, out LogLevel level) + { + var switches = _configuration.GetSection("LogLevel"); + if (switches == null) + { + level = LogLevel.None; + return false; + } + + var value = switches[name]; + if (string.IsNullOrEmpty(value)) + { + level = LogLevel.None; + return false; + } + else if (Enum.TryParse(value, true, out level)) + { + return true; + } + else + { + var message = $"Configuration value '{value}' for category '{name}' is not supported."; + throw new InvalidOperationException(message); + } + } + } +} diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.Obsolete.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.Obsolete.cs new file mode 100644 index 00000000000000..b5f0b262cb3116 --- /dev/null +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.Obsolete.cs @@ -0,0 +1,68 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Logging.Configuration; +using Microsoft.Extensions.Logging.Console; + +namespace Microsoft.Extensions.Logging +{ + public static partial class ConsoleLoggerExtensions + { + [Obsolete("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).")] + public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory, Extensions.Configuration.IConfiguration configuration) + { + var settings = new ConfigurationConsoleLoggerSettings(configuration); + return factory.AddConsole(settings); + } + + [Obsolete("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).")] + public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory, Console.IConsoleLoggerSettings settings) + { + factory.AddProvider(new ConsoleLoggerProvider(settings)); + return factory; + } + + [Obsolete("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).")] + public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory, Logging.LogLevel minLevel, bool includeScopes) + { + factory.AddConsole((n, l) => l >= LogLevel.Information, includeScopes); + return factory; + } + + [Obsolete("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).")] + public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory, Logging.LogLevel minLevel) + { + factory.AddConsole(minLevel, includeScopes: false); + return factory; + } + + [Obsolete("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).")] + public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory, bool includeScopes) + { + factory.AddConsole((n, l) => l >= LogLevel.Information, includeScopes); + return factory; + } + + [Obsolete("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).")] + public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory, System.Func filter, bool includeScopes) + { + factory.AddProvider(new ConsoleLoggerProvider(filter, includeScopes)); + return factory; + } + + [Obsolete("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).")] + public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory, System.Func filter) + { + factory.AddConsole(filter, includeScopes: false); + return factory; + } + + [Obsolete("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).")] + public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory) + { + return factory.AddConsole(includeScopes: false); + } + } +} diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.cs index 8b52fb4f0a283f..9a7d5998afd4cb 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.cs @@ -15,35 +15,11 @@ namespace Microsoft.Extensions.Logging { [UnsupportedOSPlatform("browser")] - public static class ConsoleLoggerExtensions + public static partial class ConsoleLoggerExtensions { internal const string RequiresDynamicCodeMessage = "Binding TOptions to configuration values may require generating dynamic code at runtime."; internal const string TrimmingRequiresUnreferencedCodeMessage = "TOptions's dependent types may have their members trimmed. Ensure all required members are preserved."; - [System.Obsolete("TODO")] - public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory, Extensions.Configuration.IConfiguration configuration) { throw new NotImplementedException(); } - - [System.Obsolete("TODO")] - public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory, Console.IConsoleLoggerSettings settings) { throw new NotImplementedException(); } - - [System.Obsolete("TODO")] - public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory, Logging.LogLevel minLevel, bool includeScopes) { throw new NotImplementedException(); } - - [System.Obsolete("TODO")] - public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory, Logging.LogLevel minLevel) { throw new NotImplementedException(); } - - [System.Obsolete("TODO")] - public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory, bool includeScopes) { throw new NotImplementedException(); } - - [System.Obsolete("TODO")] - public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory, System.Func filter, bool includeScopes) { throw new NotImplementedException(); } - - [System.Obsolete("TODO")] - public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory, System.Func filter) { throw new NotImplementedException(); } - - [System.Obsolete("TODO")] - public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory) { throw new NotImplementedException(); } - /// /// Adds a console logger named 'Console' to the factory. /// diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.Obsolete.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.Obsolete.cs new file mode 100644 index 00000000000000..bfdaa0e67a2c66 --- /dev/null +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.Obsolete.cs @@ -0,0 +1,79 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using System.Runtime.InteropServices; +using System.Runtime.Versioning; +using Microsoft.Extensions.Options; +using Microsoft.Extensions.Primitives; + +namespace Microsoft.Extensions.Logging.Console +{ + public partial class ConsoleLoggerProvider : ILoggerProvider, ISupportExternalScope + { + [Obsolete("This method is retained only for compatibility. The recommended alternative is using LoggerFactory to configure filtering and ConsoleLoggerOptions to configure logging options.")] + public ConsoleLoggerProvider(IConsoleLoggerSettings settings) + : this(ConsoleLoggerSettingsAdapter.GetOptionsMonitor(settings)) + { } + + [Obsolete("This method is retained only for compatibility. The recommended alternative is using LoggerFactory to configure filtering and ConsoleLoggerOptions to configure logging options.")] + public ConsoleLoggerProvider(System.Func filter, bool includeScopes, bool disableColors) + : this(new ConsoleLoggerSettings() { DisableColors = disableColors, IncludeScopes = includeScopes }) + { } + + [Obsolete("This method is retained only for compatibility. The recommended alternative is using LoggerFactory to configure filtering and ConsoleLoggerOptions to configure logging options.")] + public ConsoleLoggerProvider(System.Func filter, bool includeScopes) + : this(filter, includeScopes, false) + { } + + [Obsolete] + private sealed class ConsoleLoggerSettingsAdapter : IConfigureOptions, IOptionsChangeTokenSource + { + private IConsoleLoggerSettings _settings; + private ConsoleLoggerSettingsAdapter(IConsoleLoggerSettings settings) + { + _settings = settings; + } + + IChangeToken IOptionsChangeTokenSource.GetChangeToken() => _settings.ChangeToken ?? NullChangeToken.Instance; + + string IOptionsChangeTokenSource.Name => Microsoft.Extensions.Options.Options.DefaultName; + + void IConfigureOptions.Configure(ConsoleLoggerOptions options) + { + options.IncludeScopes = _settings.IncludeScopes; + if (_settings is ConfigurationConsoleLoggerSettings configSettings) + { + options.Configure(configSettings._configuration); + } + else if (_settings is ConsoleLoggerSettings consoleSettings) + { + options.DisableColors = consoleSettings.DisableColors; + } + } + + internal static OptionsMonitor GetOptionsMonitor(IConsoleLoggerSettings settings) + { + ConsoleLoggerSettingsAdapter adapter = new(settings); + OptionsFactory factory = new( new IConfigureOptions[] { adapter }, Array.Empty>()); + IOptionsChangeTokenSource[] sources = new IOptionsChangeTokenSource[] { adapter }; + OptionsCache cache = new(); + + return new OptionsMonitor(factory, sources, cache); + } + } + + private sealed class NullChangeToken : IChangeToken, IDisposable + { + internal static NullChangeToken Instance { get; } = new NullChangeToken(); + private NullChangeToken() { } + public bool HasChanged => false; + public bool ActiveChangeCallbacks => false; + public IDisposable RegisterChangeCallback(Action callback, object? state) => this; + public void Dispose() { } + } + } +} diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.cs index 4b1af1ef31badb..97d8538f925ce5 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.cs @@ -16,7 +16,7 @@ namespace Microsoft.Extensions.Logging.Console /// [UnsupportedOSPlatform("browser")] [ProviderAlias("Console")] - public class ConsoleLoggerProvider : ILoggerProvider, ISupportExternalScope + public partial class ConsoleLoggerProvider : ILoggerProvider, ISupportExternalScope { private readonly IOptionsMonitor _options; private readonly ConcurrentDictionary _loggers; @@ -26,15 +26,6 @@ public class ConsoleLoggerProvider : ILoggerProvider, ISupportExternalScope private readonly IDisposable? _optionsReloadToken; private IExternalScopeProvider _scopeProvider = NullExternalScopeProvider.Instance; - [System.Obsolete("TODO")] - public ConsoleLoggerProvider(IConsoleLoggerSettings settings) { throw new NotImplementedException(); } - - [System.Obsolete("TODO")] - public ConsoleLoggerProvider(System.Func filter, bool includeScopes, bool disableColors) { throw new NotImplementedException(); } - - [System.Obsolete("TODO")] - public ConsoleLoggerProvider(System.Func filter, bool includeScopes) { throw new NotImplementedException(); } - /// /// Creates an instance of . /// diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerSettings.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerSettings.cs new file mode 100644 index 00000000000000..7ec9f639edf830 --- /dev/null +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerSettings.cs @@ -0,0 +1,31 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Collections.Generic; +using Microsoft.Extensions.Primitives; + +namespace Microsoft.Extensions.Logging.Console +{ + [Obsolete("This method is retained only for compatibility. The recommended alternative is ConsoleLoggerOptions.")] + public class ConsoleLoggerSettings : IConsoleLoggerSettings + { + public IChangeToken? ChangeToken { get; set; } + + public bool IncludeScopes { get; set; } + + public bool DisableColors { get; set; } + + public IDictionary Switches { get; set; } = new Dictionary(); + + public IConsoleLoggerSettings Reload() + { + return this; + } + + public bool TryGetSwitch(string name, out LogLevel level) + { + return Switches.TryGetValue(name, out level); + } + } +} diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/IConsoleLoggerSettings.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/IConsoleLoggerSettings.cs new file mode 100644 index 00000000000000..bf3847e675020c --- /dev/null +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/IConsoleLoggerSettings.cs @@ -0,0 +1,20 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using Microsoft.Extensions.Primitives; + +namespace Microsoft.Extensions.Logging.Console +{ + [Obsolete("This method is retained only for compatibility. The recommended alternative is ConsoleLoggerOptions.")] + public interface IConsoleLoggerSettings + { + bool IncludeScopes { get; } + + IChangeToken? ChangeToken { get; } + + bool TryGetSwitch(string name, out LogLevel level); + + IConsoleLoggerSettings Reload(); + } +} diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/Obsolete.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/Obsolete.cs deleted file mode 100644 index 0d3c38b24ea2b7..00000000000000 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/Obsolete.cs +++ /dev/null @@ -1,51 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; - -namespace Microsoft.Extensions.Logging.Console -{ - - [System.Obsolete("TODO")] - public partial class ConfigurationConsoleLoggerSettings : IConsoleLoggerSettings - { - public ConfigurationConsoleLoggerSettings(Extensions.Configuration.IConfiguration configuration) { throw new NotImplementedException(); } - - public Extensions.Primitives.IChangeToken ChangeToken { get { throw new NotImplementedException(); } } - - public bool IncludeScopes { get { throw new NotImplementedException(); } } - - public IConsoleLoggerSettings Reload() { throw new NotImplementedException(); } - - public bool TryGetSwitch(string name, out Logging.LogLevel level) { throw new NotImplementedException(); } - } - - [System.Obsolete("TODO")] - public partial class ConsoleLoggerSettings : IConsoleLoggerSettings - { - public ConsoleLoggerSettings() { throw new NotImplementedException(); } - - public Extensions.Primitives.IChangeToken ChangeToken { get { throw new NotImplementedException(); } set { throw new NotImplementedException(); } } - - public bool DisableColors { get { throw new NotImplementedException(); } set { throw new NotImplementedException(); } } - - public bool IncludeScopes { get { throw new NotImplementedException(); } set { throw new NotImplementedException(); } } - - public System.Collections.Generic.IDictionary Switches { get { throw new NotImplementedException(); } set { throw new NotImplementedException(); } } - - public IConsoleLoggerSettings Reload() { throw new NotImplementedException(); } - - public bool TryGetSwitch(string name, out Logging.LogLevel level) { throw new NotImplementedException(); } - } - - [System.Obsolete("TODO")] - public partial interface IConsoleLoggerSettings - { - Extensions.Primitives.IChangeToken ChangeToken { get; } - - bool IncludeScopes { get; } - - IConsoleLoggerSettings Reload(); - bool TryGetSwitch(string name, out Logging.LogLevel level); - } -} From 19ef7037400901b30cea9c9c0cdbbcf2f1d26517 Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Tue, 9 May 2023 23:28:17 -0700 Subject: [PATCH 08/21] Fix the download of extensions compat packages --- src/libraries/Directory.Build.targets | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/libraries/Directory.Build.targets b/src/libraries/Directory.Build.targets index 13348b9dc45d13..d7cf0429124d3a 100644 --- a/src/libraries/Directory.Build.targets +++ b/src/libraries/Directory.Build.targets @@ -210,7 +210,7 @@ - true + true 2.2.0 $(IntermediateOutputPath)$(MSBuildThisFileName).semaphore @@ -219,13 +219,19 @@ $(ExtensionsCompatSuppressionFilePath) - - - + + + + + + + Date: Mon, 15 May 2023 15:18:48 -0700 Subject: [PATCH 09/21] Remove ConsoleLifetime overload This method was creating a binding ambiguity for DI. It has zero usage, so just exclude it. --- .../ref/Microsoft.Extensions.Hosting.cs | 2 - .../Extensions.CompatibilitySuppressions.xml | 11 ++++ .../src/Internal/ConsoleLifetime.obsolete.cs | 66 ------------------- 3 files changed, 11 insertions(+), 68 deletions(-) create mode 100644 src/libraries/Microsoft.Extensions.Hosting/src/Extensions.CompatibilitySuppressions.xml delete mode 100644 src/libraries/Microsoft.Extensions.Hosting/src/Internal/ConsoleLifetime.obsolete.cs diff --git a/src/libraries/Microsoft.Extensions.Hosting/ref/Microsoft.Extensions.Hosting.cs b/src/libraries/Microsoft.Extensions.Hosting/ref/Microsoft.Extensions.Hosting.cs index e6bf2958e0ef20..d8820aa7133668 100644 --- a/src/libraries/Microsoft.Extensions.Hosting/ref/Microsoft.Extensions.Hosting.cs +++ b/src/libraries/Microsoft.Extensions.Hosting/ref/Microsoft.Extensions.Hosting.cs @@ -130,8 +130,6 @@ public partial class ConsoleLifetime : Microsoft.Extensions.Hosting.IHostLifetim { public ConsoleLifetime(Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Hosting.IHostEnvironment environment, Microsoft.Extensions.Hosting.IHostApplicationLifetime applicationLifetime, Microsoft.Extensions.Options.IOptions hostOptions) { } public ConsoleLifetime(Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Hosting.IHostEnvironment environment, Microsoft.Extensions.Hosting.IHostApplicationLifetime applicationLifetime, Microsoft.Extensions.Options.IOptions hostOptions, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { } - [System.ObsoleteAttribute("IHostingEnvironment and IApplicationLifetime have been deprecated. Use Microsoft.Extensions.Hosting.IHostEnvironment and IHostApplicationLifetime instead.")] - public ConsoleLifetime(Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Hosting.IHostingEnvironment environment, Microsoft.Extensions.Hosting.IApplicationLifetime applicationLifetime) { } public void Dispose() { } public System.Threading.Tasks.Task StopAsync(System.Threading.CancellationToken cancellationToken) { throw null; } public System.Threading.Tasks.Task WaitForStartAsync(System.Threading.CancellationToken cancellationToken) { throw null; } diff --git a/src/libraries/Microsoft.Extensions.Hosting/src/Extensions.CompatibilitySuppressions.xml b/src/libraries/Microsoft.Extensions.Hosting/src/Extensions.CompatibilitySuppressions.xml new file mode 100644 index 00000000000000..b20e1084d8f437 --- /dev/null +++ b/src/libraries/Microsoft.Extensions.Hosting/src/Extensions.CompatibilitySuppressions.xml @@ -0,0 +1,11 @@ + + + + + CP0002 + M:Microsoft.Extensions.Hosting.Internal.ConsoleLifetime.#ctor(Microsoft.Extensions.Options.IOptions{Microsoft.Extensions.Hosting.ConsoleLifetimeOptions},Microsoft.Extensions.Hosting.IHostingEnvironment,Microsoft.Extensions.Hosting.IApplicationLifetime) + lib/netstandard2.0/Microsoft.Extensions.Hosting.dll + lib/netstandard2.0/Microsoft.Extensions.Hosting.dll + true + + \ No newline at end of file diff --git a/src/libraries/Microsoft.Extensions.Hosting/src/Internal/ConsoleLifetime.obsolete.cs b/src/libraries/Microsoft.Extensions.Hosting/src/Internal/ConsoleLifetime.obsolete.cs deleted file mode 100644 index e3705e4133f9b5..00000000000000 --- a/src/libraries/Microsoft.Extensions.Hosting/src/Internal/ConsoleLifetime.obsolete.cs +++ /dev/null @@ -1,66 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Threading; -using Microsoft.Extensions.FileProviders; -using Microsoft.Extensions.Options; - -namespace Microsoft.Extensions.Hosting.Internal -{ - public partial class ConsoleLifetime : IHostLifetime - { - [Obsolete("IHostingEnvironment and IApplicationLifetime have been deprecated. Use Microsoft.Extensions.Hosting.IHostEnvironment and IHostApplicationLifetime instead.")] - public ConsoleLifetime(IOptions options, IHostingEnvironment environment, IApplicationLifetime applicationLifetime) - : this (options, new HostingEnvironmentAdapter(environment), new ApplicationLifetimeAdapter(applicationLifetime), new OptionsWrapper(new HostOptions())) { } - - #pragma warning disable CS0618 - private struct HostingEnvironmentAdapter : IHostEnvironment - { - private IHostingEnvironment _hostingEnvironment; - public HostingEnvironmentAdapter(IHostingEnvironment hostingEnvironment) - { - _hostingEnvironment = hostingEnvironment; - } - - public string EnvironmentName - { - get => _hostingEnvironment.EnvironmentName; - set => _hostingEnvironment.EnvironmentName = value; - } - public string ApplicationName - { - get => _hostingEnvironment.ApplicationName; - set => _hostingEnvironment.ApplicationName = value; - } - public string ContentRootPath - { - get => _hostingEnvironment.ContentRootPath; - set => _hostingEnvironment.ContentRootPath = value; - } - public IFileProvider ContentRootFileProvider - { - get => _hostingEnvironment.ContentRootFileProvider; - - set => _hostingEnvironment.ContentRootFileProvider = value; - } - } - - private struct ApplicationLifetimeAdapter : IHostApplicationLifetime - { - private IApplicationLifetime _applicationLifetime; - - public ApplicationLifetimeAdapter(IApplicationLifetime applicationLifetime) - { - _applicationLifetime = applicationLifetime; - } - - public CancellationToken ApplicationStarted { get => _applicationLifetime.ApplicationStarted; } - public CancellationToken ApplicationStopping { get => _applicationLifetime.ApplicationStopping; } - public CancellationToken ApplicationStopped { get => _applicationLifetime.ApplicationStopped; } - public void StopApplication() => _applicationLifetime.StopApplication(); - } - #pragma warning restore CS0618 - - } -} From bb9c4c7f169abe1305471fc3b3a3575fbb06498f Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Mon, 15 May 2023 15:25:26 -0700 Subject: [PATCH 10/21] Update obsolete message on InplaceStringBuilder --- .../ref/Microsoft.Extensions.Primitives.cs | 2 +- .../Microsoft.Extensions.Primitives/src/InplaceStringBuilder.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libraries/Microsoft.Extensions.Primitives/ref/Microsoft.Extensions.Primitives.cs b/src/libraries/Microsoft.Extensions.Primitives/ref/Microsoft.Extensions.Primitives.cs index f5d17b9f4573b8..8fbdf6082bd70e 100644 --- a/src/libraries/Microsoft.Extensions.Primitives/ref/Microsoft.Extensions.Primitives.cs +++ b/src/libraries/Microsoft.Extensions.Primitives/ref/Microsoft.Extensions.Primitives.cs @@ -36,7 +36,7 @@ public partial interface IChangeToken bool HasChanged { get; } System.IDisposable RegisterChangeCallback(System.Action callback, object? state); } - [System.ObsoleteAttribute("This type is obsolete and will be removed in a future version.")] + [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is string.Create (int length, TState state, System.Buffers.SpanAction action).")] public partial struct InplaceStringBuilder { private object _dummy; diff --git a/src/libraries/Microsoft.Extensions.Primitives/src/InplaceStringBuilder.cs b/src/libraries/Microsoft.Extensions.Primitives/src/InplaceStringBuilder.cs index 2fe2f6c5b7e089..f6f08598446509 100644 --- a/src/libraries/Microsoft.Extensions.Primitives/src/InplaceStringBuilder.cs +++ b/src/libraries/Microsoft.Extensions.Primitives/src/InplaceStringBuilder.cs @@ -8,7 +8,7 @@ namespace Microsoft.Extensions.Primitives { [DebuggerDisplay("Value = {_value}")] - [Obsolete("This type is obsolete and will be removed in a future version.")] + [Obsolete("This method is retained only for compatibility. The recommended alternative is string.Create (int length, TState state, System.Buffers.SpanAction action).")] public struct InplaceStringBuilder { private int _offset; From e70d1a6eb3c28322485efa7ffc13e189e4d42500 Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Mon, 15 May 2023 15:26:01 -0700 Subject: [PATCH 11/21] Fill in implementation of obsolete logging methods --- .../src/DebugLogger.cs | 3 +- .../src/DebugLoggerFactoryExtensions.cs | 25 +++++- ...crosoft.Extensions.Logging.EventLog.csproj | 4 - .../src/EventLoggerFactoryExtensions.cs | 28 ++++++- .../src/EventSourceLoggerFactoryExtensions.cs | 16 +++- .../src/TraceSourceFactoryExtensions.cs | 78 ++++++++++++++++--- 6 files changed, 130 insertions(+), 24 deletions(-) diff --git a/src/libraries/Microsoft.Extensions.Logging.Debug/src/DebugLogger.cs b/src/libraries/Microsoft.Extensions.Logging.Debug/src/DebugLogger.cs index f84e641ace3ddd..eda4262a465d87 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Debug/src/DebugLogger.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Debug/src/DebugLogger.cs @@ -31,8 +31,7 @@ public IDisposable BeginScope(TState state) where TState : notnull /// public bool IsEnabled(LogLevel logLevel) { - // If the filter is null, everything is enabled - // unless the debugger is not attached + // Everything is enabled unless the debugger is not attached return Debugger.IsAttached && logLevel != LogLevel.None; } diff --git a/src/libraries/Microsoft.Extensions.Logging.Debug/src/DebugLoggerFactoryExtensions.cs b/src/libraries/Microsoft.Extensions.Logging.Debug/src/DebugLoggerFactoryExtensions.cs index dba874e0e453af..ffc5528210a03f 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Debug/src/DebugLoggerFactoryExtensions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Debug/src/DebugLoggerFactoryExtensions.cs @@ -13,14 +13,33 @@ namespace Microsoft.Extensions.Logging /// public static class DebugLoggerFactoryExtensions { + /// + /// Adds a debug logger that is enabled for .Information or higher. + /// + /// The extension method argument. + /// The minimum to be logged. This parameter is no longer honored and will be ignored. [Obsolete("This method is obsolete and will be removed in a future version. The recommended alternative is AddDebug(this ILoggingBuilder builder).")] - public static ILoggerFactory AddDebug(this ILoggerFactory factory, LogLevel minLevel) { throw new NotImplementedException(); } + public static ILoggerFactory AddDebug(this ILoggerFactory factory, LogLevel minLevel) => AddDebug(factory); + /// + /// Adds a debug logger that is enabled as defined by the filter function. + /// + /// The extension method argument. + /// The function used to filter events based on the log level. This parameter is no longer honored and will be ignored. [Obsolete("This method is obsolete and will be removed in a future version. The recommended alternative is AddDebug(this ILoggingBuilder builder).")] - public static ILoggerFactory AddDebug(this ILoggerFactory factory, Func filter) { throw new NotImplementedException(); } + public static ILoggerFactory AddDebug(this ILoggerFactory factory, Func filter) => AddDebug(factory); + /// + /// Adds a debug logger that is enabled for s of minLevel or higher. + /// + /// The extension method argument. [Obsolete("This method is obsolete and will be removed in a future version. The recommended alternative is AddDebug(this ILoggingBuilder builder).")] - public static ILoggerFactory AddDebug(this ILoggerFactory factory) { throw new NotImplementedException(); } + public static ILoggerFactory AddDebug(this ILoggerFactory factory) + { + factory.AddProvider(new DebugLoggerProvider()); + return factory; + } + /// /// Adds a debug logger named 'Debug' to the factory. /// diff --git a/src/libraries/Microsoft.Extensions.Logging.EventLog/ref/Microsoft.Extensions.Logging.EventLog.csproj b/src/libraries/Microsoft.Extensions.Logging.EventLog/ref/Microsoft.Extensions.Logging.EventLog.csproj index 2e3ede95ad5529..400910cffffb6b 100644 --- a/src/libraries/Microsoft.Extensions.Logging.EventLog/ref/Microsoft.Extensions.Logging.EventLog.csproj +++ b/src/libraries/Microsoft.Extensions.Logging.EventLog/ref/Microsoft.Extensions.Logging.EventLog.csproj @@ -12,8 +12,4 @@ - - - - diff --git a/src/libraries/Microsoft.Extensions.Logging.EventLog/src/EventLoggerFactoryExtensions.cs b/src/libraries/Microsoft.Extensions.Logging.EventLog/src/EventLoggerFactoryExtensions.cs index 9d2f70d6eb590a..f9f91973429ca1 100644 --- a/src/libraries/Microsoft.Extensions.Logging.EventLog/src/EventLoggerFactoryExtensions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.EventLog/src/EventLoggerFactoryExtensions.cs @@ -13,16 +13,36 @@ namespace Microsoft.Extensions.Logging /// public static class EventLoggerFactoryExtensions { + /// + /// Adds an event logger. Use to enable logging for specific s. + /// + /// The extension method argument. + /// The . [System.Obsolete("This method is obsolete and will be removed in a future version. The recommended alternative is AddEventLog(this ILoggingBuilder builder).")] - public static ILoggerFactory AddEventLog(this ILoggerFactory factory, EventLog.EventLogSettings settings) { throw new NotImplementedException(); } + public static ILoggerFactory AddEventLog(this ILoggerFactory factory, EventLog.EventLogSettings settings) + { + ThrowHelper.ThrowIfNull(factory); + ThrowHelper.ThrowIfNull(settings); + factory.AddProvider(new EventLogLoggerProvider(settings)); + return factory; + } + /// + /// Adds an event logger that is enabled for s of minLevel or higher. + /// + /// The extension method argument. + /// The minimum to be logged [System.Obsolete("This method is obsolete and will be removed in a future version. The recommended alternative is AddEventLog(this ILoggingBuilder builder).")] - public static ILoggerFactory AddEventLog(this ILoggerFactory factory, LogLevel minLevel) { throw new NotImplementedException(); } - + public static ILoggerFactory AddEventLog(this ILoggerFactory factory, LogLevel minLevel) => + AddEventLog(factory, new EventLogSettings() { Filter = (_, logLevel) => logLevel >= minLevel }); + /// + /// Adds an event logger that is enabled for .Information or higher. + /// + /// The extension method argument. [System.Obsolete("This method is obsolete and will be removed in a future version. The recommended alternative is AddEventLog(this ILoggingBuilder builder).")] - public static ILoggerFactory AddEventLog(this ILoggerFactory factory) { throw new NotImplementedException(); } + public static ILoggerFactory AddEventLog(this ILoggerFactory factory) => AddEventLog(factory, LogLevel.Information); /// /// Adds an event logger named 'EventLog' to the factory. diff --git a/src/libraries/Microsoft.Extensions.Logging.EventSource/src/EventSourceLoggerFactoryExtensions.cs b/src/libraries/Microsoft.Extensions.Logging.EventSource/src/EventSourceLoggerFactoryExtensions.cs index e7e9492e487a42..df8fa048d0d025 100644 --- a/src/libraries/Microsoft.Extensions.Logging.EventSource/src/EventSourceLoggerFactoryExtensions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.EventSource/src/EventSourceLoggerFactoryExtensions.cs @@ -14,11 +14,23 @@ namespace Microsoft.Extensions.Logging /// public static class EventSourceLoggerFactoryExtensions { + /// + /// Adds an logger that writes messages to the instance. + /// + /// The extension method argument. + /// The so that additional calls can be chained. [System.Obsolete("This method is obsolete and will be removed in a future version. The recommended alternative is AddEventSourceLogger(this ILoggingBuilder builder).")] - public static ILoggerFactory AddEventSourceLogger(this ILoggerFactory factory) { throw new NotImplementedException(); } + public static ILoggerFactory AddEventSourceLogger(this ILoggerFactory factory) + { + ThrowHelper.ThrowIfNull(factory); + + factory.AddProvider(new EventSourceLoggerProvider(LoggingEventSource.Instance)); + + return factory; + } /// - /// Adds an event logger named 'EventSource' to the factory. + /// Adds an logger that writes messages to the instance. /// /// The extension method argument. /// The so that additional calls can be chained. diff --git a/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/TraceSourceFactoryExtensions.cs b/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/TraceSourceFactoryExtensions.cs index f4a69eaa8f6c81..8e357702e34253 100644 --- a/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/TraceSourceFactoryExtensions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/TraceSourceFactoryExtensions.cs @@ -13,20 +13,80 @@ namespace Microsoft.Extensions.Logging /// public static class TraceSourceFactoryExtensions { + /// + /// Adds a logger that writes to . + /// + /// The to use. + /// The to use. + /// The to use. + /// The so that additional calls can be chained. [System.Obsolete("This method is obsolete and will be removed in a future version. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).")] - public static ILoggerFactory AddTraceSource(this ILoggerFactory factory, System.Diagnostics.SourceSwitch sourceSwitch, System.Diagnostics.TraceListener listener) { throw new NotImplementedException(); } + public static ILoggerFactory AddTraceSource(this ILoggerFactory factory, System.Diagnostics.SourceSwitch sourceSwitch, System.Diagnostics.TraceListener listener) + { + ThrowHelper.ThrowIfNull(factory); + ThrowHelper.ThrowIfNull(sourceSwitch); + ThrowHelper.ThrowIfNull(listener); + + factory.AddProvider(new TraceSourceLoggerProvider(sourceSwitch, listener)); + + return factory; + } + /// + /// Adds a logger that writes to . + /// + /// The to use. + /// The to use. + /// The so that additional calls can be chained. [System.Obsolete("This method is obsolete and will be removed in a future version. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).")] - public static ILoggerFactory AddTraceSource(this ILoggerFactory factory, System.Diagnostics.SourceSwitch sourceSwitch) { throw new NotImplementedException(); } + public static ILoggerFactory AddTraceSource(this ILoggerFactory factory, System.Diagnostics.SourceSwitch sourceSwitch) + { + ThrowHelper.ThrowIfNull(factory); + ThrowHelper.ThrowIfNull(sourceSwitch); + factory.AddProvider(new TraceSourceLoggerProvider(sourceSwitch)); + + return factory; + } + + /// + /// Adds a logger that writes to . + /// + /// The to use. + /// The name of the to use. + /// The to use. + /// The so that additional calls can be chained. [System.Obsolete("This method is obsolete and will be removed in a future version. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).")] - public static ILoggerFactory AddTraceSource(this ILoggerFactory factory, string switchName, System.Diagnostics.TraceListener listener) { throw new NotImplementedException(); } + public static ILoggerFactory AddTraceSource(this ILoggerFactory factory, string switchName, System.Diagnostics.TraceListener listener) + { + ThrowHelper.ThrowIfNull(factory); + ThrowHelper.ThrowIfNull(switchName); + ThrowHelper.ThrowIfNull(listener); + + factory.AddProvider(new TraceSourceLoggerProvider(new SourceSwitch(switchName), listener)); + + return factory; + } + /// + /// Adds a logger that writes to . + /// + /// The to use. + /// The name of the to use. + /// The so that additional calls can be chained. [System.Obsolete("This method is obsolete and will be removed in a future version. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).")] - public static ILoggerFactory AddTraceSource(this ILoggerFactory factory, string switchName) { throw new NotImplementedException(); } + public static ILoggerFactory AddTraceSource(this ILoggerFactory factory, string switchName) + { + ThrowHelper.ThrowIfNull(factory); + ThrowHelper.ThrowIfNull(switchName); + + factory.AddProvider(new TraceSourceLoggerProvider(new SourceSwitch(switchName))); + + return factory; + } /// - /// Adds a TraceSource logger named 'TraceSource' to the factory. + /// Adds a logger that writes to . /// /// The to use. /// The name of the to use. @@ -42,7 +102,7 @@ public static ILoggingBuilder AddTraceSource( } /// - /// Adds a TraceSource logger named 'TraceSource' to the factory. + /// Adds a logger that writes to . /// /// The to use. /// The name of the to use. @@ -61,7 +121,7 @@ public static ILoggingBuilder AddTraceSource( } /// - /// Adds a TraceSource logger named 'TraceSource' to the factory. + /// Adds a logger that writes to . /// /// The to use. /// The to use. @@ -79,9 +139,9 @@ public static ILoggingBuilder AddTraceSource( } /// - /// Adds a TraceSource logger named 'TraceSource' to the factory. + /// Adds a logger that writes to . /// - /// The to use. + /// The to use. /// The to use. /// The to use. /// The so that additional calls can be chained. From 6271dc1231eddad51f6706c8981c2716c8a00b6b Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Mon, 15 May 2023 15:36:51 -0700 Subject: [PATCH 12/21] Update console->config ref dependency --- .../ref/Microsoft.Extensions.Logging.Console.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.csproj b/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.csproj index 441903c79c4317..6ac2f32359d4c9 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.csproj +++ b/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.csproj @@ -21,7 +21,7 @@ - + From f2738b3c33656718542977535185c940286b21fd Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Fri, 9 Jun 2023 11:54:58 -0700 Subject: [PATCH 13/21] Update Obsolete messages and make error --- src/libraries/Directory.Build.targets | 2 +- .../Microsoft.Extensions.Caching.Memory.cs | 2 +- .../Microsoft.Extensions.Logging.Console.cs | 28 +++++++++---------- .../src/ConfigurationConsoleLoggerSettings.cs | 2 +- .../src/ConsoleLoggerExtensions.Obsolete.cs | 16 +++++------ .../src/ConsoleLoggerProvider.Obsolete.cs | 6 ++-- .../src/ConsoleLoggerSettings.cs | 2 +- .../src/IConsoleLoggerSettings.cs | 2 +- .../ref/Microsoft.Extensions.Logging.Debug.cs | 6 ++-- .../src/DebugLoggerFactoryExtensions.cs | 6 ++-- .../Microsoft.Extensions.Logging.EventLog.cs | 6 ++-- .../src/EventLoggerFactoryExtensions.cs | 6 ++-- ...icrosoft.Extensions.Logging.EventSource.cs | 2 +- .../src/EventSourceLoggerFactoryExtensions.cs | 2 +- ...icrosoft.Extensions.Logging.TraceSource.cs | 8 +++--- .../src/TraceSourceFactoryExtensions.cs | 8 +++--- .../ref/Microsoft.Extensions.Options.cs | 6 ++-- .../src/OptionsWrapper.cs | 12 ++++---- .../ref/Microsoft.Extensions.Primitives.cs | 2 +- .../src/InplaceStringBuilder.cs | 2 +- 20 files changed, 63 insertions(+), 63 deletions(-) diff --git a/src/libraries/Directory.Build.targets b/src/libraries/Directory.Build.targets index d7cf0429124d3a..531a4f6ffab627 100644 --- a/src/libraries/Directory.Build.targets +++ b/src/libraries/Directory.Build.targets @@ -210,7 +210,7 @@ - true + true 2.2.0 $(IntermediateOutputPath)$(MSBuildThisFileName).semaphore diff --git a/src/libraries/Microsoft.Extensions.Caching.Memory/ref/Microsoft.Extensions.Caching.Memory.cs b/src/libraries/Microsoft.Extensions.Caching.Memory/ref/Microsoft.Extensions.Caching.Memory.cs index d384a18fd99500..f3a8c49080c93b 100644 --- a/src/libraries/Microsoft.Extensions.Caching.Memory/ref/Microsoft.Extensions.Caching.Memory.cs +++ b/src/libraries/Microsoft.Extensions.Caching.Memory/ref/Microsoft.Extensions.Caching.Memory.cs @@ -42,7 +42,7 @@ public partial class MemoryCacheOptions : Microsoft.Extensions.Options.IOptions< public MemoryCacheOptions() { } public Microsoft.Extensions.Internal.ISystemClock? Clock { get { throw null; } set { } } public double CompactionPercentage { get { throw null; } set { } } - [System.Obsolete("This is obsolete and will be removed in a future version.")] + [System.Obsolete("This method is retained only for compatibility. Remove use and instead call MemoryCache.Compat as needed.", error: true)] public bool CompactOnMemoryPressure { get; set; } public System.TimeSpan ExpirationScanFrequency { get { throw null; } set { } } Microsoft.Extensions.Caching.Memory.MemoryCacheOptions Microsoft.Extensions.Options.IOptions.Value { get { throw null; } } diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.cs b/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.cs index dda68fec202278..69d5e3e2eef0aa 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.cs @@ -9,21 +9,21 @@ namespace Microsoft.Extensions.Logging [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static partial class ConsoleLoggerExtensions { - [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).")] + [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).", error: true)] public static Microsoft.Extensions.Logging.ILoggerFactory AddConsole(this Microsoft.Extensions.Logging.ILoggerFactory factory) { throw null; } - [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).")] + [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).", error: true)] public static Microsoft.Extensions.Logging.ILoggerFactory AddConsole(this Microsoft.Extensions.Logging.ILoggerFactory factory, Microsoft.Extensions.Configuration.IConfiguration configuration) { throw null; } - [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).")] + [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).", error: true)] public static Microsoft.Extensions.Logging.ILoggerFactory AddConsole(this Microsoft.Extensions.Logging.ILoggerFactory factory, Microsoft.Extensions.Logging.Console.IConsoleLoggerSettings settings) { throw null; } - [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).")] + [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).", error: true)] public static Microsoft.Extensions.Logging.ILoggerFactory AddConsole(this Microsoft.Extensions.Logging.ILoggerFactory factory, Microsoft.Extensions.Logging.LogLevel minLevel) { throw null; } - [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).")] + [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).", error: true)] public static Microsoft.Extensions.Logging.ILoggerFactory AddConsole(this Microsoft.Extensions.Logging.ILoggerFactory factory, Microsoft.Extensions.Logging.LogLevel minLevel, bool includeScopes) { throw null; } - [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).")] + [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).", error: true)] public static Microsoft.Extensions.Logging.ILoggerFactory AddConsole(this Microsoft.Extensions.Logging.ILoggerFactory factory, bool includeScopes) { throw null; } - [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).")] + [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).", error: true)] public static Microsoft.Extensions.Logging.ILoggerFactory AddConsole(this Microsoft.Extensions.Logging.ILoggerFactory factory, System.Func filter) { throw null; } - [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).")] + [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).", error: true)] public static Microsoft.Extensions.Logging.ILoggerFactory AddConsole(this Microsoft.Extensions.Logging.ILoggerFactory factory, System.Func filter, bool includeScopes) { throw null; } public static Microsoft.Extensions.Logging.ILoggingBuilder AddConsole(this Microsoft.Extensions.Logging.ILoggingBuilder builder) { throw null; } public static Microsoft.Extensions.Logging.ILoggingBuilder AddConsole(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Action configure) { throw null; } @@ -43,7 +43,7 @@ public static partial class ConsoleLoggerExtensions } namespace Microsoft.Extensions.Logging.Console { - [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is ConsoleLoggerOptions.")] + [System.ObsoleteAttribute("This type is retained only for compatibility. The recommended alternative is ConsoleLoggerOptions.")] public partial class ConfigurationConsoleLoggerSettings : Microsoft.Extensions.Logging.Console.IConsoleLoggerSettings { public ConfigurationConsoleLoggerSettings(Microsoft.Extensions.Configuration.IConfiguration configuration) { } @@ -100,13 +100,13 @@ public ConsoleLoggerOptions() { } [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public partial class ConsoleLoggerProvider : Microsoft.Extensions.Logging.ILoggerProvider, Microsoft.Extensions.Logging.ISupportExternalScope, System.IDisposable { - [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is using LoggerFactory to configure filtering and ConsoleLoggerOptions to configure logging options.")] + [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is using LoggerFactory to configure filtering and ConsoleLoggerOptions to configure logging options.", error: true)] public ConsoleLoggerProvider(Microsoft.Extensions.Logging.Console.IConsoleLoggerSettings settings) { } public ConsoleLoggerProvider(Microsoft.Extensions.Options.IOptionsMonitor options) { } public ConsoleLoggerProvider(Microsoft.Extensions.Options.IOptionsMonitor options, System.Collections.Generic.IEnumerable? formatters) { } - [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is using LoggerFactory to configure filtering and ConsoleLoggerOptions to configure logging options.")] + [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is using LoggerFactory to configure filtering and ConsoleLoggerOptions to configure logging options.", error: true)] public ConsoleLoggerProvider(System.Func filter, bool includeScopes) { } - [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is using LoggerFactory to configure filtering and ConsoleLoggerOptions to configure logging options.")] + [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is using LoggerFactory to configure filtering and ConsoleLoggerOptions to configure logging options.", error: true)] public ConsoleLoggerProvider(System.Func filter, bool includeScopes, bool disableColors) { } public Microsoft.Extensions.Logging.ILogger CreateLogger(string name) { throw null; } public void Dispose() { } @@ -117,7 +117,7 @@ public enum ConsoleLoggerQueueFullMode Wait = 0, DropWrite = 1, } - [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is ConsoleLoggerOptions.")] + [System.ObsoleteAttribute("This type is retained only for compatibility. The recommended alternative is ConsoleLoggerOptions.", error: true)] public partial class ConsoleLoggerSettings : Microsoft.Extensions.Logging.Console.IConsoleLoggerSettings { public ConsoleLoggerSettings() { } @@ -128,7 +128,7 @@ public ConsoleLoggerSettings() { } public Microsoft.Extensions.Logging.Console.IConsoleLoggerSettings Reload() { throw null; } public bool TryGetSwitch(string name, out Microsoft.Extensions.Logging.LogLevel level) { throw null; } } - [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is ConsoleLoggerOptions.")] + [System.ObsoleteAttribute("This type is retained only for compatibility. The recommended alternative is ConsoleLoggerOptions.", error: true)] public partial interface IConsoleLoggerSettings { Microsoft.Extensions.Primitives.IChangeToken? ChangeToken { get; } diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConfigurationConsoleLoggerSettings.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConfigurationConsoleLoggerSettings.cs index 376caeb391ae5c..4ee3d86f456f7b 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConfigurationConsoleLoggerSettings.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConfigurationConsoleLoggerSettings.cs @@ -7,7 +7,7 @@ namespace Microsoft.Extensions.Logging.Console { - [Obsolete("This method is retained only for compatibility. The recommended alternative is ConsoleLoggerOptions.")] + [Obsolete("This type is retained only for compatibility. The recommended alternative is ConsoleLoggerOptions.")] public class ConfigurationConsoleLoggerSettings : IConsoleLoggerSettings { internal readonly IConfiguration _configuration; diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.Obsolete.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.Obsolete.cs index b5f0b262cb3116..00fe59cb486d0d 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.Obsolete.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.Obsolete.cs @@ -10,56 +10,56 @@ namespace Microsoft.Extensions.Logging { public static partial class ConsoleLoggerExtensions { - [Obsolete("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).")] + [Obsolete("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).", error: true)] public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory, Extensions.Configuration.IConfiguration configuration) { var settings = new ConfigurationConsoleLoggerSettings(configuration); return factory.AddConsole(settings); } - [Obsolete("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).")] + [Obsolete("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).", error: true)] public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory, Console.IConsoleLoggerSettings settings) { factory.AddProvider(new ConsoleLoggerProvider(settings)); return factory; } - [Obsolete("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).")] + [Obsolete("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).", error: true)] public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory, Logging.LogLevel minLevel, bool includeScopes) { factory.AddConsole((n, l) => l >= LogLevel.Information, includeScopes); return factory; } - [Obsolete("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).")] + [Obsolete("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).", error: true)] public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory, Logging.LogLevel minLevel) { factory.AddConsole(minLevel, includeScopes: false); return factory; } - [Obsolete("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).")] + [Obsolete("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).", error: true)] public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory, bool includeScopes) { factory.AddConsole((n, l) => l >= LogLevel.Information, includeScopes); return factory; } - [Obsolete("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).")] + [Obsolete("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).", error: true)] public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory, System.Func filter, bool includeScopes) { factory.AddProvider(new ConsoleLoggerProvider(filter, includeScopes)); return factory; } - [Obsolete("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).")] + [Obsolete("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).", error: true)] public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory, System.Func filter) { factory.AddConsole(filter, includeScopes: false); return factory; } - [Obsolete("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).")] + [Obsolete("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).", error: true)] public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory) { return factory.AddConsole(includeScopes: false); diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.Obsolete.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.Obsolete.cs index bfdaa0e67a2c66..dfbffd01989333 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.Obsolete.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.Obsolete.cs @@ -14,17 +14,17 @@ namespace Microsoft.Extensions.Logging.Console { public partial class ConsoleLoggerProvider : ILoggerProvider, ISupportExternalScope { - [Obsolete("This method is retained only for compatibility. The recommended alternative is using LoggerFactory to configure filtering and ConsoleLoggerOptions to configure logging options.")] + [Obsolete("This method is retained only for compatibility. The recommended alternative is using LoggerFactory to configure filtering and ConsoleLoggerOptions to configure logging options.", error: true)] public ConsoleLoggerProvider(IConsoleLoggerSettings settings) : this(ConsoleLoggerSettingsAdapter.GetOptionsMonitor(settings)) { } - [Obsolete("This method is retained only for compatibility. The recommended alternative is using LoggerFactory to configure filtering and ConsoleLoggerOptions to configure logging options.")] + [Obsolete("This method is retained only for compatibility. The recommended alternative is using LoggerFactory to configure filtering and ConsoleLoggerOptions to configure logging options.", error: true)] public ConsoleLoggerProvider(System.Func filter, bool includeScopes, bool disableColors) : this(new ConsoleLoggerSettings() { DisableColors = disableColors, IncludeScopes = includeScopes }) { } - [Obsolete("This method is retained only for compatibility. The recommended alternative is using LoggerFactory to configure filtering and ConsoleLoggerOptions to configure logging options.")] + [Obsolete("This method is retained only for compatibility. The recommended alternative is using LoggerFactory to configure filtering and ConsoleLoggerOptions to configure logging options.", error: true)] public ConsoleLoggerProvider(System.Func filter, bool includeScopes) : this(filter, includeScopes, false) { } diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerSettings.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerSettings.cs index 7ec9f639edf830..4e70fb1f702b99 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerSettings.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerSettings.cs @@ -7,7 +7,7 @@ namespace Microsoft.Extensions.Logging.Console { - [Obsolete("This method is retained only for compatibility. The recommended alternative is ConsoleLoggerOptions.")] + [Obsolete("This type is retained only for compatibility. The recommended alternative is ConsoleLoggerOptions.", error: true)] public class ConsoleLoggerSettings : IConsoleLoggerSettings { public IChangeToken? ChangeToken { get; set; } diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/IConsoleLoggerSettings.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/IConsoleLoggerSettings.cs index bf3847e675020c..139a04ea280ab4 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/IConsoleLoggerSettings.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/IConsoleLoggerSettings.cs @@ -6,7 +6,7 @@ namespace Microsoft.Extensions.Logging.Console { - [Obsolete("This method is retained only for compatibility. The recommended alternative is ConsoleLoggerOptions.")] + [Obsolete("This type is retained only for compatibility. The recommended alternative is ConsoleLoggerOptions.", error: true)] public interface IConsoleLoggerSettings { bool IncludeScopes { get; } diff --git a/src/libraries/Microsoft.Extensions.Logging.Debug/ref/Microsoft.Extensions.Logging.Debug.cs b/src/libraries/Microsoft.Extensions.Logging.Debug/ref/Microsoft.Extensions.Logging.Debug.cs index 419abf4c5c0fa5..3de4e3a49988cd 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Debug/ref/Microsoft.Extensions.Logging.Debug.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Debug/ref/Microsoft.Extensions.Logging.Debug.cs @@ -8,11 +8,11 @@ namespace Microsoft.Extensions.Logging { public static partial class DebugLoggerFactoryExtensions { - [System.ObsoleteAttribute("This method is obsolete and will be removed in a future version. The recommended alternative is AddDebug(this ILoggingBuilder builder).")] + [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddDebug(this ILoggingBuilder builder).", error: true)] public static Microsoft.Extensions.Logging.ILoggerFactory AddDebug(this Microsoft.Extensions.Logging.ILoggerFactory factory) { throw null; } - [System.ObsoleteAttribute("This method is obsolete and will be removed in a future version. The recommended alternative is AddDebug(this ILoggingBuilder builder).")] + [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddDebug(this ILoggingBuilder builder).", error: true)] public static Microsoft.Extensions.Logging.ILoggerFactory AddDebug(this Microsoft.Extensions.Logging.ILoggerFactory factory, Microsoft.Extensions.Logging.LogLevel minLevel) { throw null; } - [System.ObsoleteAttribute("This method is obsolete and will be removed in a future version. The recommended alternative is AddDebug(this ILoggingBuilder builder).")] + [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddDebug(this ILoggingBuilder builder).", error: true)] public static Microsoft.Extensions.Logging.ILoggerFactory AddDebug(this Microsoft.Extensions.Logging.ILoggerFactory factory, System.Func filter) { throw null; } public static Microsoft.Extensions.Logging.ILoggingBuilder AddDebug(this Microsoft.Extensions.Logging.ILoggingBuilder builder) { throw null; } } diff --git a/src/libraries/Microsoft.Extensions.Logging.Debug/src/DebugLoggerFactoryExtensions.cs b/src/libraries/Microsoft.Extensions.Logging.Debug/src/DebugLoggerFactoryExtensions.cs index ffc5528210a03f..10675cb766a942 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Debug/src/DebugLoggerFactoryExtensions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Debug/src/DebugLoggerFactoryExtensions.cs @@ -18,7 +18,7 @@ public static class DebugLoggerFactoryExtensions /// /// The extension method argument. /// The minimum to be logged. This parameter is no longer honored and will be ignored. - [Obsolete("This method is obsolete and will be removed in a future version. The recommended alternative is AddDebug(this ILoggingBuilder builder).")] + [Obsolete("This method is retained only for compatibility. The recommended alternative is AddDebug(this ILoggingBuilder builder).", error: true)] public static ILoggerFactory AddDebug(this ILoggerFactory factory, LogLevel minLevel) => AddDebug(factory); /// @@ -26,14 +26,14 @@ public static class DebugLoggerFactoryExtensions /// /// The extension method argument. /// The function used to filter events based on the log level. This parameter is no longer honored and will be ignored. - [Obsolete("This method is obsolete and will be removed in a future version. The recommended alternative is AddDebug(this ILoggingBuilder builder).")] + [Obsolete("This method is retained only for compatibility. The recommended alternative is AddDebug(this ILoggingBuilder builder).", error: true)] public static ILoggerFactory AddDebug(this ILoggerFactory factory, Func filter) => AddDebug(factory); /// /// Adds a debug logger that is enabled for s of minLevel or higher. /// /// The extension method argument. - [Obsolete("This method is obsolete and will be removed in a future version. The recommended alternative is AddDebug(this ILoggingBuilder builder).")] + [Obsolete("This method is retained only for compatibility. The recommended alternative is AddDebug(this ILoggingBuilder builder).", error: true)] public static ILoggerFactory AddDebug(this ILoggerFactory factory) { factory.AddProvider(new DebugLoggerProvider()); diff --git a/src/libraries/Microsoft.Extensions.Logging.EventLog/ref/Microsoft.Extensions.Logging.EventLog.cs b/src/libraries/Microsoft.Extensions.Logging.EventLog/ref/Microsoft.Extensions.Logging.EventLog.cs index bce6851087299c..c117a5d55637cb 100644 --- a/src/libraries/Microsoft.Extensions.Logging.EventLog/ref/Microsoft.Extensions.Logging.EventLog.cs +++ b/src/libraries/Microsoft.Extensions.Logging.EventLog/ref/Microsoft.Extensions.Logging.EventLog.cs @@ -8,11 +8,11 @@ namespace Microsoft.Extensions.Logging { public static partial class EventLoggerFactoryExtensions { - [System.ObsoleteAttribute("This method is obsolete and will be removed in a future version. The recommended alternative is AddEventLog(this ILoggingBuilder builder).")] + [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddEventLog(this ILoggingBuilder builder).", error: true)] public static Microsoft.Extensions.Logging.ILoggerFactory AddEventLog(this Microsoft.Extensions.Logging.ILoggerFactory factory) { throw null; } - [System.ObsoleteAttribute("This method is obsolete and will be removed in a future version. The recommended alternative is AddEventLog(this ILoggingBuilder builder).")] + [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddEventLog(this ILoggingBuilder builder).", error: true)] public static Microsoft.Extensions.Logging.ILoggerFactory AddEventLog(this Microsoft.Extensions.Logging.ILoggerFactory factory, Microsoft.Extensions.Logging.EventLog.EventLogSettings settings) { throw null; } - [System.ObsoleteAttribute("This method is obsolete and will be removed in a future version. The recommended alternative is AddEventLog(this ILoggingBuilder builder).")] + [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddEventLog(this ILoggingBuilder builder).", error: true)] public static Microsoft.Extensions.Logging.ILoggerFactory AddEventLog(this Microsoft.Extensions.Logging.ILoggerFactory factory, Microsoft.Extensions.Logging.LogLevel minLevel) { throw null; } public static Microsoft.Extensions.Logging.ILoggingBuilder AddEventLog(this Microsoft.Extensions.Logging.ILoggingBuilder builder) { throw null; } public static Microsoft.Extensions.Logging.ILoggingBuilder AddEventLog(this Microsoft.Extensions.Logging.ILoggingBuilder builder, Microsoft.Extensions.Logging.EventLog.EventLogSettings settings) { throw null; } diff --git a/src/libraries/Microsoft.Extensions.Logging.EventLog/src/EventLoggerFactoryExtensions.cs b/src/libraries/Microsoft.Extensions.Logging.EventLog/src/EventLoggerFactoryExtensions.cs index f9f91973429ca1..56009cb6e9efa6 100644 --- a/src/libraries/Microsoft.Extensions.Logging.EventLog/src/EventLoggerFactoryExtensions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.EventLog/src/EventLoggerFactoryExtensions.cs @@ -18,7 +18,7 @@ public static class EventLoggerFactoryExtensions /// /// The extension method argument. /// The . - [System.Obsolete("This method is obsolete and will be removed in a future version. The recommended alternative is AddEventLog(this ILoggingBuilder builder).")] + [System.Obsolete("This method is retained only for compatibility. The recommended alternative is AddEventLog(this ILoggingBuilder builder).", error: true)] public static ILoggerFactory AddEventLog(this ILoggerFactory factory, EventLog.EventLogSettings settings) { ThrowHelper.ThrowIfNull(factory); @@ -33,7 +33,7 @@ public static ILoggerFactory AddEventLog(this ILoggerFactory factory, EventLog.E /// /// The extension method argument. /// The minimum to be logged - [System.Obsolete("This method is obsolete and will be removed in a future version. The recommended alternative is AddEventLog(this ILoggingBuilder builder).")] + [System.Obsolete("This method is retained only for compatibility. The recommended alternative is AddEventLog(this ILoggingBuilder builder).", error: true)] public static ILoggerFactory AddEventLog(this ILoggerFactory factory, LogLevel minLevel) => AddEventLog(factory, new EventLogSettings() { Filter = (_, logLevel) => logLevel >= minLevel }); @@ -41,7 +41,7 @@ public static ILoggerFactory AddEventLog(this ILoggerFactory factory, LogLevel m /// Adds an event logger that is enabled for .Information or higher. /// /// The extension method argument. - [System.Obsolete("This method is obsolete and will be removed in a future version. The recommended alternative is AddEventLog(this ILoggingBuilder builder).")] + [System.Obsolete("This method is retained only for compatibility. The recommended alternative is AddEventLog(this ILoggingBuilder builder).", error: true)] public static ILoggerFactory AddEventLog(this ILoggerFactory factory) => AddEventLog(factory, LogLevel.Information); /// diff --git a/src/libraries/Microsoft.Extensions.Logging.EventSource/ref/Microsoft.Extensions.Logging.EventSource.cs b/src/libraries/Microsoft.Extensions.Logging.EventSource/ref/Microsoft.Extensions.Logging.EventSource.cs index dac281b16fca78..13f16cdd441a96 100644 --- a/src/libraries/Microsoft.Extensions.Logging.EventSource/ref/Microsoft.Extensions.Logging.EventSource.cs +++ b/src/libraries/Microsoft.Extensions.Logging.EventSource/ref/Microsoft.Extensions.Logging.EventSource.cs @@ -8,7 +8,7 @@ namespace Microsoft.Extensions.Logging { public static partial class EventSourceLoggerFactoryExtensions { - [System.ObsoleteAttribute("This method is obsolete and will be removed in a future version. The recommended alternative is AddEventSourceLogger(this ILoggingBuilder builder).")] + [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddEventSourceLogger(this ILoggingBuilder builder).", error: true)] public static Microsoft.Extensions.Logging.ILoggerFactory AddEventSourceLogger(this Microsoft.Extensions.Logging.ILoggerFactory factory) { throw null; } public static Microsoft.Extensions.Logging.ILoggingBuilder AddEventSourceLogger(this Microsoft.Extensions.Logging.ILoggingBuilder builder) { throw null; } } diff --git a/src/libraries/Microsoft.Extensions.Logging.EventSource/src/EventSourceLoggerFactoryExtensions.cs b/src/libraries/Microsoft.Extensions.Logging.EventSource/src/EventSourceLoggerFactoryExtensions.cs index df8fa048d0d025..7a461507f1e0d4 100644 --- a/src/libraries/Microsoft.Extensions.Logging.EventSource/src/EventSourceLoggerFactoryExtensions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.EventSource/src/EventSourceLoggerFactoryExtensions.cs @@ -19,7 +19,7 @@ public static class EventSourceLoggerFactoryExtensions /// /// The extension method argument. /// The so that additional calls can be chained. - [System.Obsolete("This method is obsolete and will be removed in a future version. The recommended alternative is AddEventSourceLogger(this ILoggingBuilder builder).")] + [System.Obsolete("This method is retained only for compatibility. The recommended alternative is AddEventSourceLogger(this ILoggingBuilder builder).", error: true)] public static ILoggerFactory AddEventSourceLogger(this ILoggerFactory factory) { ThrowHelper.ThrowIfNull(factory); diff --git a/src/libraries/Microsoft.Extensions.Logging.TraceSource/ref/Microsoft.Extensions.Logging.TraceSource.cs b/src/libraries/Microsoft.Extensions.Logging.TraceSource/ref/Microsoft.Extensions.Logging.TraceSource.cs index 7584cb286476b9..411b8e8e3ff29a 100644 --- a/src/libraries/Microsoft.Extensions.Logging.TraceSource/ref/Microsoft.Extensions.Logging.TraceSource.cs +++ b/src/libraries/Microsoft.Extensions.Logging.TraceSource/ref/Microsoft.Extensions.Logging.TraceSource.cs @@ -8,13 +8,13 @@ namespace Microsoft.Extensions.Logging { public static partial class TraceSourceFactoryExtensions { - [System.ObsoleteAttribute("This method is obsolete and will be removed in a future version. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).")] + [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).", error: true)] public static Microsoft.Extensions.Logging.ILoggerFactory AddTraceSource(this Microsoft.Extensions.Logging.ILoggerFactory factory, System.Diagnostics.SourceSwitch sourceSwitch) { throw null; } - [System.ObsoleteAttribute("This method is obsolete and will be removed in a future version. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).")] + [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).", error: true)] public static Microsoft.Extensions.Logging.ILoggerFactory AddTraceSource(this Microsoft.Extensions.Logging.ILoggerFactory factory, System.Diagnostics.SourceSwitch sourceSwitch, System.Diagnostics.TraceListener listener) { throw null; } - [System.ObsoleteAttribute("This method is obsolete and will be removed in a future version. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).")] + [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).", error: true)] public static Microsoft.Extensions.Logging.ILoggerFactory AddTraceSource(this Microsoft.Extensions.Logging.ILoggerFactory factory, string switchName) { throw null; } - [System.ObsoleteAttribute("This method is obsolete and will be removed in a future version. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).")] + [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).", error: true)] public static Microsoft.Extensions.Logging.ILoggerFactory AddTraceSource(this Microsoft.Extensions.Logging.ILoggerFactory factory, string switchName, System.Diagnostics.TraceListener listener) { throw null; } public static Microsoft.Extensions.Logging.ILoggingBuilder AddTraceSource(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Diagnostics.SourceSwitch sourceSwitch) { throw null; } public static Microsoft.Extensions.Logging.ILoggingBuilder AddTraceSource(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Diagnostics.SourceSwitch sourceSwitch, System.Diagnostics.TraceListener listener) { throw null; } diff --git a/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/TraceSourceFactoryExtensions.cs b/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/TraceSourceFactoryExtensions.cs index 8e357702e34253..9cb1fc978905c8 100644 --- a/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/TraceSourceFactoryExtensions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/TraceSourceFactoryExtensions.cs @@ -20,7 +20,7 @@ public static class TraceSourceFactoryExtensions /// The to use. /// The to use. /// The so that additional calls can be chained. - [System.Obsolete("This method is obsolete and will be removed in a future version. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).")] + [System.Obsolete("This method is retained only for compatibility. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).")] public static ILoggerFactory AddTraceSource(this ILoggerFactory factory, System.Diagnostics.SourceSwitch sourceSwitch, System.Diagnostics.TraceListener listener) { ThrowHelper.ThrowIfNull(factory); @@ -38,7 +38,7 @@ public static ILoggerFactory AddTraceSource(this ILoggerFactory factory, System. /// The to use. /// The to use. /// The so that additional calls can be chained. - [System.Obsolete("This method is obsolete and will be removed in a future version. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).")] + [System.Obsolete("This method is retained only for compatibility. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).")] public static ILoggerFactory AddTraceSource(this ILoggerFactory factory, System.Diagnostics.SourceSwitch sourceSwitch) { ThrowHelper.ThrowIfNull(factory); @@ -56,7 +56,7 @@ public static ILoggerFactory AddTraceSource(this ILoggerFactory factory, System. /// The name of the to use. /// The to use. /// The so that additional calls can be chained. - [System.Obsolete("This method is obsolete and will be removed in a future version. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).")] + [System.Obsolete("This method is retained only for compatibility. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).")] public static ILoggerFactory AddTraceSource(this ILoggerFactory factory, string switchName, System.Diagnostics.TraceListener listener) { ThrowHelper.ThrowIfNull(factory); @@ -74,7 +74,7 @@ public static ILoggerFactory AddTraceSource(this ILoggerFactory factory, string /// The to use. /// The name of the to use. /// The so that additional calls can be chained. - [System.Obsolete("This method is obsolete and will be removed in a future version. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).")] + [System.Obsolete("This method is retained only for compatibility. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).")] public static ILoggerFactory AddTraceSource(this ILoggerFactory factory, string switchName) { ThrowHelper.ThrowIfNull(factory); diff --git a/src/libraries/Microsoft.Extensions.Options/ref/Microsoft.Extensions.Options.cs b/src/libraries/Microsoft.Extensions.Options/ref/Microsoft.Extensions.Options.cs index b168e78c08a423..38f91164dae8dc 100644 --- a/src/libraries/Microsoft.Extensions.Options/ref/Microsoft.Extensions.Options.cs +++ b/src/libraries/Microsoft.Extensions.Options/ref/Microsoft.Extensions.Options.cs @@ -218,11 +218,11 @@ public OptionsValidationException(string optionsName, System.Type optionsType, S public partial class OptionsWrapper<[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicParameterlessConstructor)] TOptions> : Microsoft.Extensions.Options.IOptions where TOptions : class { public OptionsWrapper(TOptions options) { } - [System.ObsoleteAttribute("This method is obsolete and will be removed in a future version.")] + [System.ObsoleteAttribute("This method is retained only for compatibility.", error: true)] public void Add(string name, TOptions options) { } - [System.ObsoleteAttribute("This method is obsolete and will be removed in a future version.")] + [System.ObsoleteAttribute("This method is retained only for compatibility.", error: true)] public TOptions Get(string name) { throw null; } - [System.ObsoleteAttribute("This method is obsolete and will be removed in a future version.")] + [System.ObsoleteAttribute("This method is retained only for compatibility.", error: true)] public bool Remove(string name) { throw null; } public TOptions Value { get { throw null; } } } diff --git a/src/libraries/Microsoft.Extensions.Options/src/OptionsWrapper.cs b/src/libraries/Microsoft.Extensions.Options/src/OptionsWrapper.cs index 301f3c31904a44..b6cb7d7fe7e2d8 100644 --- a/src/libraries/Microsoft.Extensions.Options/src/OptionsWrapper.cs +++ b/src/libraries/Microsoft.Extensions.Options/src/OptionsWrapper.cs @@ -29,29 +29,29 @@ public OptionsWrapper(TOptions options) public TOptions Value { get; } /// - /// This method is obsolete and will be removed in a future version. + /// This method is retained only for compatibility. /// - [Obsolete("This method is obsolete and will be removed in a future version.")] + [Obsolete("This method is retained only for compatibility.", error: true)] public void Add(string name, TOptions options) { throw new NotImplementedException(); } /// - /// This method is obsolete and will be removed in a future version. + /// This method is retained only for compatibility. /// /// This parameter is ignored. /// The . - [Obsolete("This method is obsolete and will be removed in a future version.")] + [Obsolete("This method is retained only for compatibility.", error: true)] public TOptions Get(string name) { return Value; } /// - /// This method is obsolete and will be removed in a future version. + /// This method is retained only for compatibility. /// - [Obsolete("This method is obsolete and will be removed in a future version.")] + [Obsolete("This method is retained only for compatibility.", error: true)] public bool Remove(string name) { throw new NotImplementedException(); diff --git a/src/libraries/Microsoft.Extensions.Primitives/ref/Microsoft.Extensions.Primitives.cs b/src/libraries/Microsoft.Extensions.Primitives/ref/Microsoft.Extensions.Primitives.cs index 8fbdf6082bd70e..68eb7e04e95b8f 100644 --- a/src/libraries/Microsoft.Extensions.Primitives/ref/Microsoft.Extensions.Primitives.cs +++ b/src/libraries/Microsoft.Extensions.Primitives/ref/Microsoft.Extensions.Primitives.cs @@ -36,7 +36,7 @@ public partial interface IChangeToken bool HasChanged { get; } System.IDisposable RegisterChangeCallback(System.Action callback, object? state); } - [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is string.Create (int length, TState state, System.Buffers.SpanAction action).")] + [System.ObsoleteAttribute("This type is retained only for compatibility. The recommended alternative is string.Create (int length, TState state, System.Buffers.SpanAction action).", error: true)] public partial struct InplaceStringBuilder { private object _dummy; diff --git a/src/libraries/Microsoft.Extensions.Primitives/src/InplaceStringBuilder.cs b/src/libraries/Microsoft.Extensions.Primitives/src/InplaceStringBuilder.cs index f6f08598446509..0bdca90da2a8c8 100644 --- a/src/libraries/Microsoft.Extensions.Primitives/src/InplaceStringBuilder.cs +++ b/src/libraries/Microsoft.Extensions.Primitives/src/InplaceStringBuilder.cs @@ -8,7 +8,7 @@ namespace Microsoft.Extensions.Primitives { [DebuggerDisplay("Value = {_value}")] - [Obsolete("This method is retained only for compatibility. The recommended alternative is string.Create (int length, TState state, System.Buffers.SpanAction action).")] + [Obsolete("This type is retained only for compatibility. The recommended alternative is string.Create (int length, TState state, System.Buffers.SpanAction action).", error: true)] public struct InplaceStringBuilder { private int _offset; From dc7f9e1fbe6444c8f0f7d1e30e6f76ad831b4654 Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Fri, 9 Jun 2023 12:19:28 -0700 Subject: [PATCH 14/21] Suppress compat around Obsolete(..., error: true) --- .../Extensions.CompatibilitySuppressions.xml | 98 +++++++++++++++++++ .../Extensions.CompatibilitySuppressions.xml | 21 ++++ .../Extensions.CompatibilitySuppressions.xml | 42 ++++++++ .../Extensions.CompatibilitySuppressions.xml | 11 +++ .../Extensions.CompatibilitySuppressions.xml | 25 +++++ 5 files changed, 197 insertions(+) create mode 100644 src/libraries/Microsoft.Extensions.Logging.EventSource/src/Extensions.CompatibilitySuppressions.xml create mode 100644 src/libraries/Microsoft.Extensions.Options/src/Extensions.CompatibilitySuppressions.xml diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/Extensions.CompatibilitySuppressions.xml b/src/libraries/Microsoft.Extensions.Logging.Console/src/Extensions.CompatibilitySuppressions.xml index 9fca730910c567..731b0e02049b93 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/Extensions.CompatibilitySuppressions.xml +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/Extensions.CompatibilitySuppressions.xml @@ -57,4 +57,102 @@ lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll true + + CP0015 + M:Microsoft.Extensions.Logging.Console.ConsoleLoggerProvider.#ctor(Microsoft.Extensions.Logging.Console.IConsoleLoggerSettings):[T:System.ObsoleteAttribute] + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + true + + + CP0015 + M:Microsoft.Extensions.Logging.Console.ConsoleLoggerProvider.#ctor(System.Func{System.String,Microsoft.Extensions.Logging.LogLevel,System.Boolean},System.Boolean,System.Boolean):[T:System.ObsoleteAttribute] + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + true + + + CP0015 + M:Microsoft.Extensions.Logging.Console.ConsoleLoggerProvider.#ctor(System.Func{System.String,Microsoft.Extensions.Logging.LogLevel,System.Boolean},System.Boolean):[T:System.ObsoleteAttribute] + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + true + + + CP0015 + M:Microsoft.Extensions.Logging.ConsoleLoggerExtensions.AddConsole(Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.Configuration.IConfiguration):[T:System.ObsoleteAttribute] + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + true + + + CP0015 + M:Microsoft.Extensions.Logging.ConsoleLoggerExtensions.AddConsole(Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.Logging.Console.IConsoleLoggerSettings):[T:System.ObsoleteAttribute] + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + true + + + CP0015 + M:Microsoft.Extensions.Logging.ConsoleLoggerExtensions.AddConsole(Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.Logging.LogLevel,System.Boolean):[T:System.ObsoleteAttribute] + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + true + + + CP0015 + M:Microsoft.Extensions.Logging.ConsoleLoggerExtensions.AddConsole(Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.Logging.LogLevel):[T:System.ObsoleteAttribute] + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + true + + + CP0015 + M:Microsoft.Extensions.Logging.ConsoleLoggerExtensions.AddConsole(Microsoft.Extensions.Logging.ILoggerFactory,System.Boolean):[T:System.ObsoleteAttribute] + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + true + + + CP0015 + M:Microsoft.Extensions.Logging.ConsoleLoggerExtensions.AddConsole(Microsoft.Extensions.Logging.ILoggerFactory,System.Func{System.String,Microsoft.Extensions.Logging.LogLevel,System.Boolean},System.Boolean):[T:System.ObsoleteAttribute] + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + true + + + CP0015 + M:Microsoft.Extensions.Logging.ConsoleLoggerExtensions.AddConsole(Microsoft.Extensions.Logging.ILoggerFactory,System.Func{System.String,Microsoft.Extensions.Logging.LogLevel,System.Boolean}):[T:System.ObsoleteAttribute] + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + true + + + CP0015 + M:Microsoft.Extensions.Logging.ConsoleLoggerExtensions.AddConsole(Microsoft.Extensions.Logging.ILoggerFactory):[T:System.ObsoleteAttribute] + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + true + + + CP0015 + T:Microsoft.Extensions.Logging.Console.ConfigurationConsoleLoggerSettings:[T:System.ObsoleteAttribute] + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + true + + + CP0015 + T:Microsoft.Extensions.Logging.Console.ConsoleLoggerSettings:[T:System.ObsoleteAttribute] + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + true + + + CP0015 + T:Microsoft.Extensions.Logging.Console.IConsoleLoggerSettings:[T:System.ObsoleteAttribute] + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + true + \ No newline at end of file diff --git a/src/libraries/Microsoft.Extensions.Logging.Debug/src/Extensions.CompatibilitySuppressions.xml b/src/libraries/Microsoft.Extensions.Logging.Debug/src/Extensions.CompatibilitySuppressions.xml index 97df050202e5b5..0408efdc406a81 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Debug/src/Extensions.CompatibilitySuppressions.xml +++ b/src/libraries/Microsoft.Extensions.Logging.Debug/src/Extensions.CompatibilitySuppressions.xml @@ -15,4 +15,25 @@ lib/netstandard2.0/Microsoft.Extensions.Logging.Debug.dll true + + CP0015 + M:Microsoft.Extensions.Logging.DebugLoggerFactoryExtensions.AddDebug(Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.Logging.LogLevel):[T:System.ObsoleteAttribute] + lib/netstandard2.0/Microsoft.Extensions.Logging.Debug.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.Debug.dll + true + + + CP0015 + M:Microsoft.Extensions.Logging.DebugLoggerFactoryExtensions.AddDebug(Microsoft.Extensions.Logging.ILoggerFactory,System.Func{System.String,Microsoft.Extensions.Logging.LogLevel,System.Boolean}):[T:System.ObsoleteAttribute] + lib/netstandard2.0/Microsoft.Extensions.Logging.Debug.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.Debug.dll + true + + + CP0015 + M:Microsoft.Extensions.Logging.DebugLoggerFactoryExtensions.AddDebug(Microsoft.Extensions.Logging.ILoggerFactory):[T:System.ObsoleteAttribute] + lib/netstandard2.0/Microsoft.Extensions.Logging.Debug.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.Debug.dll + true + \ No newline at end of file diff --git a/src/libraries/Microsoft.Extensions.Logging.EventLog/src/Extensions.CompatibilitySuppressions.xml b/src/libraries/Microsoft.Extensions.Logging.EventLog/src/Extensions.CompatibilitySuppressions.xml index 0cb79d7c48f5f7..7eb6ba52f73691 100644 --- a/src/libraries/Microsoft.Extensions.Logging.EventLog/src/Extensions.CompatibilitySuppressions.xml +++ b/src/libraries/Microsoft.Extensions.Logging.EventLog/src/Extensions.CompatibilitySuppressions.xml @@ -71,4 +71,46 @@ lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll true + + CP0015 + M:Microsoft.Extensions.Logging.EventLoggerFactoryExtensions.AddEventLog(Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.Logging.EventLog.EventLogSettings):[T:System.ObsoleteAttribute] + lib/net461/Microsoft.Extensions.Logging.EventLog.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll + true + + + CP0015 + M:Microsoft.Extensions.Logging.EventLoggerFactoryExtensions.AddEventLog(Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.Logging.LogLevel):[T:System.ObsoleteAttribute] + lib/net461/Microsoft.Extensions.Logging.EventLog.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll + true + + + CP0015 + M:Microsoft.Extensions.Logging.EventLoggerFactoryExtensions.AddEventLog(Microsoft.Extensions.Logging.ILoggerFactory):[T:System.ObsoleteAttribute] + lib/net461/Microsoft.Extensions.Logging.EventLog.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll + true + + + CP0015 + M:Microsoft.Extensions.Logging.EventLoggerFactoryExtensions.AddEventLog(Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.Logging.EventLog.EventLogSettings):[T:System.ObsoleteAttribute] + lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll + true + + + CP0015 + M:Microsoft.Extensions.Logging.EventLoggerFactoryExtensions.AddEventLog(Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.Logging.LogLevel):[T:System.ObsoleteAttribute] + lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll + true + + + CP0015 + M:Microsoft.Extensions.Logging.EventLoggerFactoryExtensions.AddEventLog(Microsoft.Extensions.Logging.ILoggerFactory):[T:System.ObsoleteAttribute] + lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll + true + \ No newline at end of file diff --git a/src/libraries/Microsoft.Extensions.Logging.EventSource/src/Extensions.CompatibilitySuppressions.xml b/src/libraries/Microsoft.Extensions.Logging.EventSource/src/Extensions.CompatibilitySuppressions.xml new file mode 100644 index 00000000000000..a8aa9e5704a9f4 --- /dev/null +++ b/src/libraries/Microsoft.Extensions.Logging.EventSource/src/Extensions.CompatibilitySuppressions.xml @@ -0,0 +1,11 @@ + + + + + CP0015 + M:Microsoft.Extensions.Logging.EventSourceLoggerFactoryExtensions.AddEventSourceLogger(Microsoft.Extensions.Logging.ILoggerFactory):[T:System.ObsoleteAttribute] + lib/netstandard2.0/Microsoft.Extensions.Logging.EventSource.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.EventSource.dll + true + + \ No newline at end of file diff --git a/src/libraries/Microsoft.Extensions.Options/src/Extensions.CompatibilitySuppressions.xml b/src/libraries/Microsoft.Extensions.Options/src/Extensions.CompatibilitySuppressions.xml new file mode 100644 index 00000000000000..8cac9e59e968b6 --- /dev/null +++ b/src/libraries/Microsoft.Extensions.Options/src/Extensions.CompatibilitySuppressions.xml @@ -0,0 +1,25 @@ + + + + + CP0015 + M:Microsoft.Extensions.Options.OptionsWrapper`1.Add(System.String,`0):[T:System.ObsoleteAttribute] + lib/netstandard2.0/Microsoft.Extensions.Options.dll + lib/netstandard2.0/Microsoft.Extensions.Options.dll + true + + + CP0015 + M:Microsoft.Extensions.Options.OptionsWrapper`1.Get(System.String):[T:System.ObsoleteAttribute] + lib/netstandard2.0/Microsoft.Extensions.Options.dll + lib/netstandard2.0/Microsoft.Extensions.Options.dll + true + + + CP0015 + M:Microsoft.Extensions.Options.OptionsWrapper`1.Remove(System.String):[T:System.ObsoleteAttribute] + lib/netstandard2.0/Microsoft.Extensions.Options.dll + lib/netstandard2.0/Microsoft.Extensions.Options.dll + true + + \ No newline at end of file From 5f9b5dd93cdcfa77388034923d41407551f1e935 Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Fri, 9 Jun 2023 14:36:04 -0700 Subject: [PATCH 15/21] Fix more obsolete messages --- .../Microsoft.Extensions.Caching.Memory.cs | 2 +- .../Extensions.CompatibilitySuppressions.xml | 11 ++++++++ .../src/MemoryCacheOptions.cs | 2 +- .../Extensions.CompatibilitySuppressions.xml | 28 +++++++++++++++++++ .../src/TraceSourceFactoryExtensions.cs | 8 +++--- 5 files changed, 45 insertions(+), 6 deletions(-) create mode 100644 src/libraries/Microsoft.Extensions.Caching.Memory/src/Extensions.CompatibilitySuppressions.xml diff --git a/src/libraries/Microsoft.Extensions.Caching.Memory/ref/Microsoft.Extensions.Caching.Memory.cs b/src/libraries/Microsoft.Extensions.Caching.Memory/ref/Microsoft.Extensions.Caching.Memory.cs index f3a8c49080c93b..0941212e38c72f 100644 --- a/src/libraries/Microsoft.Extensions.Caching.Memory/ref/Microsoft.Extensions.Caching.Memory.cs +++ b/src/libraries/Microsoft.Extensions.Caching.Memory/ref/Microsoft.Extensions.Caching.Memory.cs @@ -42,7 +42,7 @@ public partial class MemoryCacheOptions : Microsoft.Extensions.Options.IOptions< public MemoryCacheOptions() { } public Microsoft.Extensions.Internal.ISystemClock? Clock { get { throw null; } set { } } public double CompactionPercentage { get { throw null; } set { } } - [System.Obsolete("This method is retained only for compatibility. Remove use and instead call MemoryCache.Compat as needed.", error: true)] + [System.Obsolete("This property is retained only for compatibility. Remove use and instead call MemoryCache.Compat as needed.", error: true)] public bool CompactOnMemoryPressure { get; set; } public System.TimeSpan ExpirationScanFrequency { get { throw null; } set { } } Microsoft.Extensions.Caching.Memory.MemoryCacheOptions Microsoft.Extensions.Options.IOptions.Value { get { throw null; } } diff --git a/src/libraries/Microsoft.Extensions.Caching.Memory/src/Extensions.CompatibilitySuppressions.xml b/src/libraries/Microsoft.Extensions.Caching.Memory/src/Extensions.CompatibilitySuppressions.xml new file mode 100644 index 00000000000000..bc8f9f8a04bd58 --- /dev/null +++ b/src/libraries/Microsoft.Extensions.Caching.Memory/src/Extensions.CompatibilitySuppressions.xml @@ -0,0 +1,11 @@ + + + + + CP0015 + P:Microsoft.Extensions.Caching.Memory.MemoryCacheOptions.CompactOnMemoryPressure:[T:System.ObsoleteAttribute] + lib/netstandard2.0/Microsoft.Extensions.Caching.Memory.dll + lib/netstandard2.0/Microsoft.Extensions.Caching.Memory.dll + true + + \ No newline at end of file diff --git a/src/libraries/Microsoft.Extensions.Caching.Memory/src/MemoryCacheOptions.cs b/src/libraries/Microsoft.Extensions.Caching.Memory/src/MemoryCacheOptions.cs index 6c723b59bb439d..b18a9b6fe069c3 100644 --- a/src/libraries/Microsoft.Extensions.Caching.Memory/src/MemoryCacheOptions.cs +++ b/src/libraries/Microsoft.Extensions.Caching.Memory/src/MemoryCacheOptions.cs @@ -42,7 +42,7 @@ public long? SizeLimit } } - [System.Obsolete("This is obsolete and will be removed in a future version.")] + [System.Obsolete("This property is retained only for compatibility. Remove use and instead call MemoryCache.Compat as needed.", error: true)] public bool CompactOnMemoryPressure { get; set; } /// diff --git a/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/Extensions.CompatibilitySuppressions.xml b/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/Extensions.CompatibilitySuppressions.xml index 23ad99b2857c75..8d47cde6b2a1af 100644 --- a/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/Extensions.CompatibilitySuppressions.xml +++ b/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/Extensions.CompatibilitySuppressions.xml @@ -15,4 +15,32 @@ lib/netstandard2.0/Microsoft.Extensions.Logging.TraceSource.dll true + + CP0015 + M:Microsoft.Extensions.Logging.TraceSourceFactoryExtensions.AddTraceSource(Microsoft.Extensions.Logging.ILoggerFactory,System.Diagnostics.SourceSwitch,System.Diagnostics.TraceListener):[T:System.ObsoleteAttribute] + lib/netstandard2.0/Microsoft.Extensions.Logging.TraceSource.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.TraceSource.dll + true + + + CP0015 + M:Microsoft.Extensions.Logging.TraceSourceFactoryExtensions.AddTraceSource(Microsoft.Extensions.Logging.ILoggerFactory,System.Diagnostics.SourceSwitch):[T:System.ObsoleteAttribute] + lib/netstandard2.0/Microsoft.Extensions.Logging.TraceSource.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.TraceSource.dll + true + + + CP0015 + M:Microsoft.Extensions.Logging.TraceSourceFactoryExtensions.AddTraceSource(Microsoft.Extensions.Logging.ILoggerFactory,System.String,System.Diagnostics.TraceListener):[T:System.ObsoleteAttribute] + lib/netstandard2.0/Microsoft.Extensions.Logging.TraceSource.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.TraceSource.dll + true + + + CP0015 + M:Microsoft.Extensions.Logging.TraceSourceFactoryExtensions.AddTraceSource(Microsoft.Extensions.Logging.ILoggerFactory,System.String):[T:System.ObsoleteAttribute] + lib/netstandard2.0/Microsoft.Extensions.Logging.TraceSource.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.TraceSource.dll + true + \ No newline at end of file diff --git a/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/TraceSourceFactoryExtensions.cs b/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/TraceSourceFactoryExtensions.cs index 9cb1fc978905c8..cc2b803dc95d0d 100644 --- a/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/TraceSourceFactoryExtensions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/TraceSourceFactoryExtensions.cs @@ -20,7 +20,7 @@ public static class TraceSourceFactoryExtensions /// The to use. /// The to use. /// The so that additional calls can be chained. - [System.Obsolete("This method is retained only for compatibility. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).")] + [ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).", error: true)] public static ILoggerFactory AddTraceSource(this ILoggerFactory factory, System.Diagnostics.SourceSwitch sourceSwitch, System.Diagnostics.TraceListener listener) { ThrowHelper.ThrowIfNull(factory); @@ -38,7 +38,7 @@ public static ILoggerFactory AddTraceSource(this ILoggerFactory factory, System. /// The to use. /// The to use. /// The so that additional calls can be chained. - [System.Obsolete("This method is retained only for compatibility. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).")] + [ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).", error: true)] public static ILoggerFactory AddTraceSource(this ILoggerFactory factory, System.Diagnostics.SourceSwitch sourceSwitch) { ThrowHelper.ThrowIfNull(factory); @@ -56,7 +56,7 @@ public static ILoggerFactory AddTraceSource(this ILoggerFactory factory, System. /// The name of the to use. /// The to use. /// The so that additional calls can be chained. - [System.Obsolete("This method is retained only for compatibility. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).")] + [ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).", error: true)] public static ILoggerFactory AddTraceSource(this ILoggerFactory factory, string switchName, System.Diagnostics.TraceListener listener) { ThrowHelper.ThrowIfNull(factory); @@ -74,7 +74,7 @@ public static ILoggerFactory AddTraceSource(this ILoggerFactory factory, string /// The to use. /// The name of the to use. /// The so that additional calls can be chained. - [System.Obsolete("This method is retained only for compatibility. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).")] + [ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).", error: true)] public static ILoggerFactory AddTraceSource(this ILoggerFactory factory, string switchName) { ThrowHelper.ThrowIfNull(factory); From dc997298519d888d9a7acbe59d1602c746ebd227 Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Mon, 12 Jun 2023 15:40:27 -0700 Subject: [PATCH 16/21] Remove ConsoleLoggerProvider ctor overloads These don't have much usage and their addition could create problems for DI Providers. --- .../Microsoft.Extensions.Logging.Console.cs | 6 -- .../src/ConsoleLoggerExtensions.Obsolete.cs | 53 ++++++++++++- .../src/ConsoleLoggerProvider.Obsolete.cs | 79 ------------------- .../Extensions.CompatibilitySuppressions.xml | 21 +++++ 4 files changed, 72 insertions(+), 87 deletions(-) delete mode 100644 src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.Obsolete.cs diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.cs b/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.cs index 69d5e3e2eef0aa..7ed223e9c7d527 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.cs @@ -100,14 +100,8 @@ public ConsoleLoggerOptions() { } [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public partial class ConsoleLoggerProvider : Microsoft.Extensions.Logging.ILoggerProvider, Microsoft.Extensions.Logging.ISupportExternalScope, System.IDisposable { - [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is using LoggerFactory to configure filtering and ConsoleLoggerOptions to configure logging options.", error: true)] - public ConsoleLoggerProvider(Microsoft.Extensions.Logging.Console.IConsoleLoggerSettings settings) { } public ConsoleLoggerProvider(Microsoft.Extensions.Options.IOptionsMonitor options) { } public ConsoleLoggerProvider(Microsoft.Extensions.Options.IOptionsMonitor options, System.Collections.Generic.IEnumerable? formatters) { } - [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is using LoggerFactory to configure filtering and ConsoleLoggerOptions to configure logging options.", error: true)] - public ConsoleLoggerProvider(System.Func filter, bool includeScopes) { } - [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is using LoggerFactory to configure filtering and ConsoleLoggerOptions to configure logging options.", error: true)] - public ConsoleLoggerProvider(System.Func filter, bool includeScopes, bool disableColors) { } public Microsoft.Extensions.Logging.ILogger CreateLogger(string name) { throw null; } public void Dispose() { } public void SetScopeProvider(Microsoft.Extensions.Logging.IExternalScopeProvider scopeProvider) { } diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.Obsolete.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.Obsolete.cs index 00fe59cb486d0d..df8ef5a657ed32 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.Obsolete.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.Obsolete.cs @@ -5,6 +5,8 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Logging.Configuration; using Microsoft.Extensions.Logging.Console; +using Microsoft.Extensions.Options; +using Microsoft.Extensions.Primitives; namespace Microsoft.Extensions.Logging { @@ -20,7 +22,7 @@ public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory fact [Obsolete("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).", error: true)] public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory, Console.IConsoleLoggerSettings settings) { - factory.AddProvider(new ConsoleLoggerProvider(settings)); + factory.AddProvider(new ConsoleLoggerProvider(ConsoleLoggerSettingsAdapter.GetOptionsMonitor(settings))); return factory; } @@ -48,7 +50,7 @@ public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory fact [Obsolete("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).", error: true)] public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory, System.Func filter, bool includeScopes) { - factory.AddProvider(new ConsoleLoggerProvider(filter, includeScopes)); + factory.AddConsole(new ConsoleLoggerSettings() { IncludeScopes = includeScopes }); return factory; } @@ -64,5 +66,52 @@ public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory fact { return factory.AddConsole(includeScopes: false); } + + [Obsolete] + private sealed class ConsoleLoggerSettingsAdapter : IConfigureOptions, IOptionsChangeTokenSource + { + private IConsoleLoggerSettings _settings; + private ConsoleLoggerSettingsAdapter(IConsoleLoggerSettings settings) + { + _settings = settings; + } + + IChangeToken IOptionsChangeTokenSource.GetChangeToken() => _settings.ChangeToken ?? NullChangeToken.Instance; + + string IOptionsChangeTokenSource.Name => Microsoft.Extensions.Options.Options.DefaultName; + + void IConfigureOptions.Configure(ConsoleLoggerOptions options) + { + options.IncludeScopes = _settings.IncludeScopes; + if (_settings is ConfigurationConsoleLoggerSettings configSettings) + { + options.Configure(configSettings._configuration); + } + else if (_settings is ConsoleLoggerSettings consoleSettings) + { + options.DisableColors = consoleSettings.DisableColors; + } + } + + internal static OptionsMonitor GetOptionsMonitor(IConsoleLoggerSettings settings) + { + ConsoleLoggerSettingsAdapter adapter = new(settings); + OptionsFactory factory = new( new IConfigureOptions[] { adapter }, Array.Empty>()); + IOptionsChangeTokenSource[] sources = new IOptionsChangeTokenSource[] { adapter }; + OptionsCache cache = new(); + + return new OptionsMonitor(factory, sources, cache); + } + } + + private sealed class NullChangeToken : IChangeToken, IDisposable + { + internal static NullChangeToken Instance { get; } = new NullChangeToken(); + private NullChangeToken() { } + public bool HasChanged => false; + public bool ActiveChangeCallbacks => false; + public IDisposable RegisterChangeCallback(Action callback, object? state) => this; + public void Dispose() { } + } } } diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.Obsolete.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.Obsolete.cs deleted file mode 100644 index dfbffd01989333..00000000000000 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.Obsolete.cs +++ /dev/null @@ -1,79 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Collections.Concurrent; -using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; -using System.Runtime.InteropServices; -using System.Runtime.Versioning; -using Microsoft.Extensions.Options; -using Microsoft.Extensions.Primitives; - -namespace Microsoft.Extensions.Logging.Console -{ - public partial class ConsoleLoggerProvider : ILoggerProvider, ISupportExternalScope - { - [Obsolete("This method is retained only for compatibility. The recommended alternative is using LoggerFactory to configure filtering and ConsoleLoggerOptions to configure logging options.", error: true)] - public ConsoleLoggerProvider(IConsoleLoggerSettings settings) - : this(ConsoleLoggerSettingsAdapter.GetOptionsMonitor(settings)) - { } - - [Obsolete("This method is retained only for compatibility. The recommended alternative is using LoggerFactory to configure filtering and ConsoleLoggerOptions to configure logging options.", error: true)] - public ConsoleLoggerProvider(System.Func filter, bool includeScopes, bool disableColors) - : this(new ConsoleLoggerSettings() { DisableColors = disableColors, IncludeScopes = includeScopes }) - { } - - [Obsolete("This method is retained only for compatibility. The recommended alternative is using LoggerFactory to configure filtering and ConsoleLoggerOptions to configure logging options.", error: true)] - public ConsoleLoggerProvider(System.Func filter, bool includeScopes) - : this(filter, includeScopes, false) - { } - - [Obsolete] - private sealed class ConsoleLoggerSettingsAdapter : IConfigureOptions, IOptionsChangeTokenSource - { - private IConsoleLoggerSettings _settings; - private ConsoleLoggerSettingsAdapter(IConsoleLoggerSettings settings) - { - _settings = settings; - } - - IChangeToken IOptionsChangeTokenSource.GetChangeToken() => _settings.ChangeToken ?? NullChangeToken.Instance; - - string IOptionsChangeTokenSource.Name => Microsoft.Extensions.Options.Options.DefaultName; - - void IConfigureOptions.Configure(ConsoleLoggerOptions options) - { - options.IncludeScopes = _settings.IncludeScopes; - if (_settings is ConfigurationConsoleLoggerSettings configSettings) - { - options.Configure(configSettings._configuration); - } - else if (_settings is ConsoleLoggerSettings consoleSettings) - { - options.DisableColors = consoleSettings.DisableColors; - } - } - - internal static OptionsMonitor GetOptionsMonitor(IConsoleLoggerSettings settings) - { - ConsoleLoggerSettingsAdapter adapter = new(settings); - OptionsFactory factory = new( new IConfigureOptions[] { adapter }, Array.Empty>()); - IOptionsChangeTokenSource[] sources = new IOptionsChangeTokenSource[] { adapter }; - OptionsCache cache = new(); - - return new OptionsMonitor(factory, sources, cache); - } - } - - private sealed class NullChangeToken : IChangeToken, IDisposable - { - internal static NullChangeToken Instance { get; } = new NullChangeToken(); - private NullChangeToken() { } - public bool HasChanged => false; - public bool ActiveChangeCallbacks => false; - public IDisposable RegisterChangeCallback(Action callback, object? state) => this; - public void Dispose() { } - } - } -} diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/Extensions.CompatibilitySuppressions.xml b/src/libraries/Microsoft.Extensions.Logging.Console/src/Extensions.CompatibilitySuppressions.xml index 731b0e02049b93..e1ba7392155a0e 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/Extensions.CompatibilitySuppressions.xml +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/Extensions.CompatibilitySuppressions.xml @@ -57,6 +57,27 @@ lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll true + + CP0002 + M:Microsoft.Extensions.Logging.Console.ConsoleLoggerProvider.#ctor(Microsoft.Extensions.Logging.Console.IConsoleLoggerSettings) + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + true + + + CP0002 + M:Microsoft.Extensions.Logging.Console.ConsoleLoggerProvider.#ctor(System.Func{System.String,Microsoft.Extensions.Logging.LogLevel,System.Boolean},System.Boolean,System.Boolean) + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + true + + + CP0002 + M:Microsoft.Extensions.Logging.Console.ConsoleLoggerProvider.#ctor(System.Func{System.String,Microsoft.Extensions.Logging.LogLevel,System.Boolean},System.Boolean) + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll + true + CP0015 M:Microsoft.Extensions.Logging.Console.ConsoleLoggerProvider.#ctor(Microsoft.Extensions.Logging.Console.IConsoleLoggerSettings):[T:System.ObsoleteAttribute] From c29ad96d5b8b58f3b2acfc3082a11a800692134d Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Tue, 13 Jun 2023 09:01:55 -0700 Subject: [PATCH 17/21] Omit ConfigurationSection .ctor overload This overload has a source compatible replacement, and is only used by one package in all of nuget.org - which already has assets targeting new TargetFrameworks which don't depend on this API. --- .../ref/Microsoft.Extensions.Configuration.cs | 1 - .../src/ConfigurationSection.cs | 8 -------- .../src/Extensions.CompatibilitySuppressions.xml | 11 +++++++++++ 3 files changed, 11 insertions(+), 9 deletions(-) create mode 100644 src/libraries/Microsoft.Extensions.Configuration/src/Extensions.CompatibilitySuppressions.xml diff --git a/src/libraries/Microsoft.Extensions.Configuration/ref/Microsoft.Extensions.Configuration.cs b/src/libraries/Microsoft.Extensions.Configuration/ref/Microsoft.Extensions.Configuration.cs index db0332a342f015..b5c18ee34b897c 100644 --- a/src/libraries/Microsoft.Extensions.Configuration/ref/Microsoft.Extensions.Configuration.cs +++ b/src/libraries/Microsoft.Extensions.Configuration/ref/Microsoft.Extensions.Configuration.cs @@ -92,7 +92,6 @@ public void Reload() { } } public partial class ConfigurationSection : Microsoft.Extensions.Configuration.IConfiguration, Microsoft.Extensions.Configuration.IConfigurationSection { - public ConfigurationSection(Microsoft.Extensions.Configuration.ConfigurationRoot root, string path) { } public ConfigurationSection(Microsoft.Extensions.Configuration.IConfigurationRoot root, string path) { } public string? this[string key] { get { throw null; } set { } } public string Key { get { throw null; } } diff --git a/src/libraries/Microsoft.Extensions.Configuration/src/ConfigurationSection.cs b/src/libraries/Microsoft.Extensions.Configuration/src/ConfigurationSection.cs index cc5e65e1e545af..270fcabb168987 100644 --- a/src/libraries/Microsoft.Extensions.Configuration/src/ConfigurationSection.cs +++ b/src/libraries/Microsoft.Extensions.Configuration/src/ConfigurationSection.cs @@ -33,14 +33,6 @@ public ConfigurationSection(IConfigurationRoot root, string path) _path = path; } - /// - /// Initializes a new instance. - /// - /// The configuration root. - /// The path to this section. - public ConfigurationSection(ConfigurationRoot root, string path) : this((IConfigurationRoot)root, path) - { } - /// /// Gets the full path to this section from the . /// diff --git a/src/libraries/Microsoft.Extensions.Configuration/src/Extensions.CompatibilitySuppressions.xml b/src/libraries/Microsoft.Extensions.Configuration/src/Extensions.CompatibilitySuppressions.xml new file mode 100644 index 00000000000000..b2c810690f9f37 --- /dev/null +++ b/src/libraries/Microsoft.Extensions.Configuration/src/Extensions.CompatibilitySuppressions.xml @@ -0,0 +1,11 @@ + + + + + CP0002 + M:Microsoft.Extensions.Configuration.ConfigurationSection.#ctor(Microsoft.Extensions.Configuration.ConfigurationRoot,System.String) + lib/netstandard2.0/Microsoft.Extensions.Configuration.dll + lib/netstandard2.0/Microsoft.Extensions.Configuration.dll + true + + \ No newline at end of file From 58a8cf4f6ceef12e1ab432882f8fb1f577fc4cdf Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Wed, 14 Jun 2023 12:05:54 -0700 Subject: [PATCH 18/21] Remove OptionsWrapper members These were only available as non-obsolete in 2.0 and there is zero usage on nuget.org. --- .../ref/Microsoft.Extensions.Options.cs | 6 ---- .../Extensions.CompatibilitySuppressions.xml | 21 +++++++++++++ .../src/OptionsWrapper.cs | 30 +------------------ 3 files changed, 22 insertions(+), 35 deletions(-) diff --git a/src/libraries/Microsoft.Extensions.Options/ref/Microsoft.Extensions.Options.cs b/src/libraries/Microsoft.Extensions.Options/ref/Microsoft.Extensions.Options.cs index 38f91164dae8dc..6ae6095e9ad3e6 100644 --- a/src/libraries/Microsoft.Extensions.Options/ref/Microsoft.Extensions.Options.cs +++ b/src/libraries/Microsoft.Extensions.Options/ref/Microsoft.Extensions.Options.cs @@ -218,12 +218,6 @@ public OptionsValidationException(string optionsName, System.Type optionsType, S public partial class OptionsWrapper<[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicParameterlessConstructor)] TOptions> : Microsoft.Extensions.Options.IOptions where TOptions : class { public OptionsWrapper(TOptions options) { } - [System.ObsoleteAttribute("This method is retained only for compatibility.", error: true)] - public void Add(string name, TOptions options) { } - [System.ObsoleteAttribute("This method is retained only for compatibility.", error: true)] - public TOptions Get(string name) { throw null; } - [System.ObsoleteAttribute("This method is retained only for compatibility.", error: true)] - public bool Remove(string name) { throw null; } public TOptions Value { get { throw null; } } } public partial class PostConfigureOptions : Microsoft.Extensions.Options.IPostConfigureOptions where TOptions : class diff --git a/src/libraries/Microsoft.Extensions.Options/src/Extensions.CompatibilitySuppressions.xml b/src/libraries/Microsoft.Extensions.Options/src/Extensions.CompatibilitySuppressions.xml index 8cac9e59e968b6..2a6816494d3658 100644 --- a/src/libraries/Microsoft.Extensions.Options/src/Extensions.CompatibilitySuppressions.xml +++ b/src/libraries/Microsoft.Extensions.Options/src/Extensions.CompatibilitySuppressions.xml @@ -1,6 +1,27 @@  + + CP0002 + M:Microsoft.Extensions.Options.OptionsWrapper`1.Add(System.String,`0) + lib/netstandard2.0/Microsoft.Extensions.Options.dll + lib/netstandard2.0/Microsoft.Extensions.Options.dll + true + + + CP0002 + M:Microsoft.Extensions.Options.OptionsWrapper`1.Get(System.String) + lib/netstandard2.0/Microsoft.Extensions.Options.dll + lib/netstandard2.0/Microsoft.Extensions.Options.dll + true + + + CP0002 + M:Microsoft.Extensions.Options.OptionsWrapper`1.Remove(System.String) + lib/netstandard2.0/Microsoft.Extensions.Options.dll + lib/netstandard2.0/Microsoft.Extensions.Options.dll + true + CP0015 M:Microsoft.Extensions.Options.OptionsWrapper`1.Add(System.String,`0):[T:System.ObsoleteAttribute] diff --git a/src/libraries/Microsoft.Extensions.Options/src/OptionsWrapper.cs b/src/libraries/Microsoft.Extensions.Options/src/OptionsWrapper.cs index b6cb7d7fe7e2d8..b25603a080c1e9 100644 --- a/src/libraries/Microsoft.Extensions.Options/src/OptionsWrapper.cs +++ b/src/libraries/Microsoft.Extensions.Options/src/OptionsWrapper.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; +using System.ComponentModel; using System.Diagnostics.CodeAnalysis; namespace Microsoft.Extensions.Options @@ -27,34 +28,5 @@ public OptionsWrapper(TOptions options) /// The options instance. /// public TOptions Value { get; } - - /// - /// This method is retained only for compatibility. - /// - [Obsolete("This method is retained only for compatibility.", error: true)] - public void Add(string name, TOptions options) - { - throw new NotImplementedException(); - } - - /// - /// This method is retained only for compatibility. - /// - /// This parameter is ignored. - /// The . - [Obsolete("This method is retained only for compatibility.", error: true)] - public TOptions Get(string name) - { - return Value; - } - - /// - /// This method is retained only for compatibility. - /// - [Obsolete("This method is retained only for compatibility.", error: true)] - public bool Remove(string name) - { - throw new NotImplementedException(); - } } } From 63c233d1bbd9742d00a47706781ba1d60a0037f9 Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Wed, 14 Jun 2023 12:27:47 -0700 Subject: [PATCH 19/21] Mark restored obsoleted API as EditorBrowsable=never --- .../ref/Microsoft.Extensions.Caching.Memory.cs | 3 ++- .../src/MemoryCacheOptions.cs | 4 +++- .../ref/Microsoft.Extensions.Logging.Console.cs | 11 +++++++++++ .../src/ConfigurationConsoleLoggerSettings.cs | 2 ++ .../src/ConsoleLoggerExtensions.Obsolete.cs | 9 +++++++++ .../src/ConsoleLoggerSettings.cs | 2 ++ .../src/IConsoleLoggerSettings.cs | 2 ++ .../ref/Microsoft.Extensions.Logging.Debug.cs | 3 +++ .../src/DebugLoggerFactoryExtensions.cs | 4 ++++ .../ref/Microsoft.Extensions.Logging.EventLog.cs | 3 +++ .../src/EventLoggerFactoryExtensions.cs | 10 +++++++--- .../ref/Microsoft.Extensions.Logging.EventSource.cs | 1 + .../src/EventSourceLoggerFactoryExtensions.cs | 4 +++- .../ref/Microsoft.Extensions.Logging.TraceSource.cs | 4 ++++ .../src/TraceSourceFactoryExtensions.cs | 13 +++++++++---- .../ref/Microsoft.Extensions.Primitives.cs | 1 + .../src/InplaceStringBuilder.cs | 2 ++ 17 files changed, 68 insertions(+), 10 deletions(-) diff --git a/src/libraries/Microsoft.Extensions.Caching.Memory/ref/Microsoft.Extensions.Caching.Memory.cs b/src/libraries/Microsoft.Extensions.Caching.Memory/ref/Microsoft.Extensions.Caching.Memory.cs index 0941212e38c72f..e4f2e66b7006cb 100644 --- a/src/libraries/Microsoft.Extensions.Caching.Memory/ref/Microsoft.Extensions.Caching.Memory.cs +++ b/src/libraries/Microsoft.Extensions.Caching.Memory/ref/Microsoft.Extensions.Caching.Memory.cs @@ -42,7 +42,8 @@ public partial class MemoryCacheOptions : Microsoft.Extensions.Options.IOptions< public MemoryCacheOptions() { } public Microsoft.Extensions.Internal.ISystemClock? Clock { get { throw null; } set { } } public double CompactionPercentage { get { throw null; } set { } } - [System.Obsolete("This property is retained only for compatibility. Remove use and instead call MemoryCache.Compat as needed.", error: true)] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Obsolete("This property is retained only for compatibility. Remove use and instead call MemoryCache.Compact as needed.", error: true)] public bool CompactOnMemoryPressure { get; set; } public System.TimeSpan ExpirationScanFrequency { get { throw null; } set { } } Microsoft.Extensions.Caching.Memory.MemoryCacheOptions Microsoft.Extensions.Options.IOptions.Value { get { throw null; } } diff --git a/src/libraries/Microsoft.Extensions.Caching.Memory/src/MemoryCacheOptions.cs b/src/libraries/Microsoft.Extensions.Caching.Memory/src/MemoryCacheOptions.cs index b18a9b6fe069c3..15a4eaf220e525 100644 --- a/src/libraries/Microsoft.Extensions.Caching.Memory/src/MemoryCacheOptions.cs +++ b/src/libraries/Microsoft.Extensions.Caching.Memory/src/MemoryCacheOptions.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; +using System.ComponentModel; using Microsoft.Extensions.Internal; using Microsoft.Extensions.Options; @@ -42,7 +43,8 @@ public long? SizeLimit } } - [System.Obsolete("This property is retained only for compatibility. Remove use and instead call MemoryCache.Compat as needed.", error: true)] + [EditorBrowsableAttribute(EditorBrowsableState.Never)] + [Obsolete("This property is retained only for compatibility. Remove use and instead call MemoryCache.Compact as needed.", error: true)] public bool CompactOnMemoryPressure { get; set; } /// diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.cs b/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.cs index 7ed223e9c7d527..ebdce4441e2861 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.cs @@ -9,20 +9,28 @@ namespace Microsoft.Extensions.Logging [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static partial class ConsoleLoggerExtensions { + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).", error: true)] public static Microsoft.Extensions.Logging.ILoggerFactory AddConsole(this Microsoft.Extensions.Logging.ILoggerFactory factory) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).", error: true)] public static Microsoft.Extensions.Logging.ILoggerFactory AddConsole(this Microsoft.Extensions.Logging.ILoggerFactory factory, Microsoft.Extensions.Configuration.IConfiguration configuration) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).", error: true)] public static Microsoft.Extensions.Logging.ILoggerFactory AddConsole(this Microsoft.Extensions.Logging.ILoggerFactory factory, Microsoft.Extensions.Logging.Console.IConsoleLoggerSettings settings) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).", error: true)] public static Microsoft.Extensions.Logging.ILoggerFactory AddConsole(this Microsoft.Extensions.Logging.ILoggerFactory factory, Microsoft.Extensions.Logging.LogLevel minLevel) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).", error: true)] public static Microsoft.Extensions.Logging.ILoggerFactory AddConsole(this Microsoft.Extensions.Logging.ILoggerFactory factory, Microsoft.Extensions.Logging.LogLevel minLevel, bool includeScopes) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).", error: true)] public static Microsoft.Extensions.Logging.ILoggerFactory AddConsole(this Microsoft.Extensions.Logging.ILoggerFactory factory, bool includeScopes) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).", error: true)] public static Microsoft.Extensions.Logging.ILoggerFactory AddConsole(this Microsoft.Extensions.Logging.ILoggerFactory factory, System.Func filter) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).", error: true)] public static Microsoft.Extensions.Logging.ILoggerFactory AddConsole(this Microsoft.Extensions.Logging.ILoggerFactory factory, System.Func filter, bool includeScopes) { throw null; } public static Microsoft.Extensions.Logging.ILoggingBuilder AddConsole(this Microsoft.Extensions.Logging.ILoggingBuilder builder) { throw null; } @@ -43,6 +51,7 @@ public static partial class ConsoleLoggerExtensions } namespace Microsoft.Extensions.Logging.Console { + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] [System.ObsoleteAttribute("This type is retained only for compatibility. The recommended alternative is ConsoleLoggerOptions.")] public partial class ConfigurationConsoleLoggerSettings : Microsoft.Extensions.Logging.Console.IConsoleLoggerSettings { @@ -111,6 +120,7 @@ public enum ConsoleLoggerQueueFullMode Wait = 0, DropWrite = 1, } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] [System.ObsoleteAttribute("This type is retained only for compatibility. The recommended alternative is ConsoleLoggerOptions.", error: true)] public partial class ConsoleLoggerSettings : Microsoft.Extensions.Logging.Console.IConsoleLoggerSettings { @@ -122,6 +132,7 @@ public ConsoleLoggerSettings() { } public Microsoft.Extensions.Logging.Console.IConsoleLoggerSettings Reload() { throw null; } public bool TryGetSwitch(string name, out Microsoft.Extensions.Logging.LogLevel level) { throw null; } } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] [System.ObsoleteAttribute("This type is retained only for compatibility. The recommended alternative is ConsoleLoggerOptions.", error: true)] public partial interface IConsoleLoggerSettings { diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConfigurationConsoleLoggerSettings.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConfigurationConsoleLoggerSettings.cs index 4ee3d86f456f7b..9ac19144b737b8 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConfigurationConsoleLoggerSettings.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConfigurationConsoleLoggerSettings.cs @@ -2,11 +2,13 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; +using System.ComponentModel; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Primitives; namespace Microsoft.Extensions.Logging.Console { + [EditorBrowsable(EditorBrowsableState.Never)] [Obsolete("This type is retained only for compatibility. The recommended alternative is ConsoleLoggerOptions.")] public class ConfigurationConsoleLoggerSettings : IConsoleLoggerSettings { diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.Obsolete.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.Obsolete.cs index df8ef5a657ed32..3ddc4586e98336 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.Obsolete.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.Obsolete.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; +using System.ComponentModel; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Logging.Configuration; using Microsoft.Extensions.Logging.Console; @@ -12,6 +13,7 @@ namespace Microsoft.Extensions.Logging { public static partial class ConsoleLoggerExtensions { + [EditorBrowsable(EditorBrowsableState.Never)] [Obsolete("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).", error: true)] public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory, Extensions.Configuration.IConfiguration configuration) { @@ -19,6 +21,7 @@ public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory fact return factory.AddConsole(settings); } + [EditorBrowsable(EditorBrowsableState.Never)] [Obsolete("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).", error: true)] public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory, Console.IConsoleLoggerSettings settings) { @@ -26,6 +29,7 @@ public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory fact return factory; } + [EditorBrowsable(EditorBrowsableState.Never)] [Obsolete("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).", error: true)] public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory, Logging.LogLevel minLevel, bool includeScopes) { @@ -33,6 +37,7 @@ public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory fact return factory; } + [EditorBrowsable(EditorBrowsableState.Never)] [Obsolete("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).", error: true)] public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory, Logging.LogLevel minLevel) { @@ -40,6 +45,7 @@ public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory fact return factory; } + [EditorBrowsable(EditorBrowsableState.Never)] [Obsolete("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).", error: true)] public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory, bool includeScopes) { @@ -47,6 +53,7 @@ public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory fact return factory; } + [EditorBrowsable(EditorBrowsableState.Never)] [Obsolete("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).", error: true)] public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory, System.Func filter, bool includeScopes) { @@ -54,6 +61,7 @@ public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory fact return factory; } + [EditorBrowsable(EditorBrowsableState.Never)] [Obsolete("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).", error: true)] public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory, System.Func filter) { @@ -61,6 +69,7 @@ public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory fact return factory; } + [EditorBrowsable(EditorBrowsableState.Never)] [Obsolete("This method is retained only for compatibility. The recommended alternative is AddConsole(this ILoggingBuilder builder).", error: true)] public static Logging.ILoggerFactory AddConsole(this Logging.ILoggerFactory factory) { diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerSettings.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerSettings.cs index 4e70fb1f702b99..77bd183cef358a 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerSettings.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerSettings.cs @@ -3,10 +3,12 @@ using System; using System.Collections.Generic; +using System.ComponentModel; using Microsoft.Extensions.Primitives; namespace Microsoft.Extensions.Logging.Console { + [EditorBrowsable(EditorBrowsableState.Never)] [Obsolete("This type is retained only for compatibility. The recommended alternative is ConsoleLoggerOptions.", error: true)] public class ConsoleLoggerSettings : IConsoleLoggerSettings { diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/IConsoleLoggerSettings.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/IConsoleLoggerSettings.cs index 139a04ea280ab4..81c2b846c5e3ea 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/IConsoleLoggerSettings.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/IConsoleLoggerSettings.cs @@ -2,10 +2,12 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; +using System.ComponentModel; using Microsoft.Extensions.Primitives; namespace Microsoft.Extensions.Logging.Console { + [EditorBrowsable(EditorBrowsableState.Never)] [Obsolete("This type is retained only for compatibility. The recommended alternative is ConsoleLoggerOptions.", error: true)] public interface IConsoleLoggerSettings { diff --git a/src/libraries/Microsoft.Extensions.Logging.Debug/ref/Microsoft.Extensions.Logging.Debug.cs b/src/libraries/Microsoft.Extensions.Logging.Debug/ref/Microsoft.Extensions.Logging.Debug.cs index 3de4e3a49988cd..6b0feb5254e92e 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Debug/ref/Microsoft.Extensions.Logging.Debug.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Debug/ref/Microsoft.Extensions.Logging.Debug.cs @@ -8,10 +8,13 @@ namespace Microsoft.Extensions.Logging { public static partial class DebugLoggerFactoryExtensions { + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddDebug(this ILoggingBuilder builder).", error: true)] public static Microsoft.Extensions.Logging.ILoggerFactory AddDebug(this Microsoft.Extensions.Logging.ILoggerFactory factory) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddDebug(this ILoggingBuilder builder).", error: true)] public static Microsoft.Extensions.Logging.ILoggerFactory AddDebug(this Microsoft.Extensions.Logging.ILoggerFactory factory, Microsoft.Extensions.Logging.LogLevel minLevel) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddDebug(this ILoggingBuilder builder).", error: true)] public static Microsoft.Extensions.Logging.ILoggerFactory AddDebug(this Microsoft.Extensions.Logging.ILoggerFactory factory, System.Func filter) { throw null; } public static Microsoft.Extensions.Logging.ILoggingBuilder AddDebug(this Microsoft.Extensions.Logging.ILoggingBuilder builder) { throw null; } diff --git a/src/libraries/Microsoft.Extensions.Logging.Debug/src/DebugLoggerFactoryExtensions.cs b/src/libraries/Microsoft.Extensions.Logging.Debug/src/DebugLoggerFactoryExtensions.cs index 10675cb766a942..179c27ed805869 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Debug/src/DebugLoggerFactoryExtensions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Debug/src/DebugLoggerFactoryExtensions.cs @@ -5,6 +5,7 @@ using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Logging.Debug; using System; +using System.ComponentModel; namespace Microsoft.Extensions.Logging { @@ -18,6 +19,7 @@ public static class DebugLoggerFactoryExtensions /// /// The extension method argument. /// The minimum to be logged. This parameter is no longer honored and will be ignored. + [EditorBrowsable(EditorBrowsableState.Never)] [Obsolete("This method is retained only for compatibility. The recommended alternative is AddDebug(this ILoggingBuilder builder).", error: true)] public static ILoggerFactory AddDebug(this ILoggerFactory factory, LogLevel minLevel) => AddDebug(factory); @@ -26,6 +28,7 @@ public static class DebugLoggerFactoryExtensions /// /// The extension method argument. /// The function used to filter events based on the log level. This parameter is no longer honored and will be ignored. + [EditorBrowsable(EditorBrowsableState.Never)] [Obsolete("This method is retained only for compatibility. The recommended alternative is AddDebug(this ILoggingBuilder builder).", error: true)] public static ILoggerFactory AddDebug(this ILoggerFactory factory, Func filter) => AddDebug(factory); @@ -33,6 +36,7 @@ public static class DebugLoggerFactoryExtensions /// Adds a debug logger that is enabled for s of minLevel or higher. /// /// The extension method argument. + [EditorBrowsable(EditorBrowsableState.Never)] [Obsolete("This method is retained only for compatibility. The recommended alternative is AddDebug(this ILoggingBuilder builder).", error: true)] public static ILoggerFactory AddDebug(this ILoggerFactory factory) { diff --git a/src/libraries/Microsoft.Extensions.Logging.EventLog/ref/Microsoft.Extensions.Logging.EventLog.cs b/src/libraries/Microsoft.Extensions.Logging.EventLog/ref/Microsoft.Extensions.Logging.EventLog.cs index c117a5d55637cb..659188403840d8 100644 --- a/src/libraries/Microsoft.Extensions.Logging.EventLog/ref/Microsoft.Extensions.Logging.EventLog.cs +++ b/src/libraries/Microsoft.Extensions.Logging.EventLog/ref/Microsoft.Extensions.Logging.EventLog.cs @@ -8,10 +8,13 @@ namespace Microsoft.Extensions.Logging { public static partial class EventLoggerFactoryExtensions { + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddEventLog(this ILoggingBuilder builder).", error: true)] public static Microsoft.Extensions.Logging.ILoggerFactory AddEventLog(this Microsoft.Extensions.Logging.ILoggerFactory factory) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddEventLog(this ILoggingBuilder builder).", error: true)] public static Microsoft.Extensions.Logging.ILoggerFactory AddEventLog(this Microsoft.Extensions.Logging.ILoggerFactory factory, Microsoft.Extensions.Logging.EventLog.EventLogSettings settings) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddEventLog(this ILoggingBuilder builder).", error: true)] public static Microsoft.Extensions.Logging.ILoggerFactory AddEventLog(this Microsoft.Extensions.Logging.ILoggerFactory factory, Microsoft.Extensions.Logging.LogLevel minLevel) { throw null; } public static Microsoft.Extensions.Logging.ILoggingBuilder AddEventLog(this Microsoft.Extensions.Logging.ILoggingBuilder builder) { throw null; } diff --git a/src/libraries/Microsoft.Extensions.Logging.EventLog/src/EventLoggerFactoryExtensions.cs b/src/libraries/Microsoft.Extensions.Logging.EventLog/src/EventLoggerFactoryExtensions.cs index 56009cb6e9efa6..1ff31e4e1586ac 100644 --- a/src/libraries/Microsoft.Extensions.Logging.EventLog/src/EventLoggerFactoryExtensions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.EventLog/src/EventLoggerFactoryExtensions.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; +using System.ComponentModel; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Logging.EventLog; @@ -18,7 +19,8 @@ public static class EventLoggerFactoryExtensions /// /// The extension method argument. /// The . - [System.Obsolete("This method is retained only for compatibility. The recommended alternative is AddEventLog(this ILoggingBuilder builder).", error: true)] + [EditorBrowsable(EditorBrowsableState.Never)] + [Obsolete("This method is retained only for compatibility. The recommended alternative is AddEventLog(this ILoggingBuilder builder).", error: true)] public static ILoggerFactory AddEventLog(this ILoggerFactory factory, EventLog.EventLogSettings settings) { ThrowHelper.ThrowIfNull(factory); @@ -33,7 +35,8 @@ public static ILoggerFactory AddEventLog(this ILoggerFactory factory, EventLog.E /// /// The extension method argument. /// The minimum to be logged - [System.Obsolete("This method is retained only for compatibility. The recommended alternative is AddEventLog(this ILoggingBuilder builder).", error: true)] + [EditorBrowsable(EditorBrowsableState.Never)] + [Obsolete("This method is retained only for compatibility. The recommended alternative is AddEventLog(this ILoggingBuilder builder).", error: true)] public static ILoggerFactory AddEventLog(this ILoggerFactory factory, LogLevel minLevel) => AddEventLog(factory, new EventLogSettings() { Filter = (_, logLevel) => logLevel >= minLevel }); @@ -41,7 +44,8 @@ public static ILoggerFactory AddEventLog(this ILoggerFactory factory, LogLevel m /// Adds an event logger that is enabled for .Information or higher. /// /// The extension method argument. - [System.Obsolete("This method is retained only for compatibility. The recommended alternative is AddEventLog(this ILoggingBuilder builder).", error: true)] + [EditorBrowsable(EditorBrowsableState.Never)] + [Obsolete("This method is retained only for compatibility. The recommended alternative is AddEventLog(this ILoggingBuilder builder).", error: true)] public static ILoggerFactory AddEventLog(this ILoggerFactory factory) => AddEventLog(factory, LogLevel.Information); /// diff --git a/src/libraries/Microsoft.Extensions.Logging.EventSource/ref/Microsoft.Extensions.Logging.EventSource.cs b/src/libraries/Microsoft.Extensions.Logging.EventSource/ref/Microsoft.Extensions.Logging.EventSource.cs index 13f16cdd441a96..0adcc2b6f34903 100644 --- a/src/libraries/Microsoft.Extensions.Logging.EventSource/ref/Microsoft.Extensions.Logging.EventSource.cs +++ b/src/libraries/Microsoft.Extensions.Logging.EventSource/ref/Microsoft.Extensions.Logging.EventSource.cs @@ -8,6 +8,7 @@ namespace Microsoft.Extensions.Logging { public static partial class EventSourceLoggerFactoryExtensions { + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddEventSourceLogger(this ILoggingBuilder builder).", error: true)] public static Microsoft.Extensions.Logging.ILoggerFactory AddEventSourceLogger(this Microsoft.Extensions.Logging.ILoggerFactory factory) { throw null; } public static Microsoft.Extensions.Logging.ILoggingBuilder AddEventSourceLogger(this Microsoft.Extensions.Logging.ILoggingBuilder builder) { throw null; } diff --git a/src/libraries/Microsoft.Extensions.Logging.EventSource/src/EventSourceLoggerFactoryExtensions.cs b/src/libraries/Microsoft.Extensions.Logging.EventSource/src/EventSourceLoggerFactoryExtensions.cs index 7a461507f1e0d4..cd92ca6b2aee40 100644 --- a/src/libraries/Microsoft.Extensions.Logging.EventSource/src/EventSourceLoggerFactoryExtensions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.EventSource/src/EventSourceLoggerFactoryExtensions.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; +using System.ComponentModel; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Logging.EventSource; @@ -19,7 +20,8 @@ public static class EventSourceLoggerFactoryExtensions /// /// The extension method argument. /// The so that additional calls can be chained. - [System.Obsolete("This method is retained only for compatibility. The recommended alternative is AddEventSourceLogger(this ILoggingBuilder builder).", error: true)] + [EditorBrowsable(EditorBrowsableState.Never)] + [Obsolete("This method is retained only for compatibility. The recommended alternative is AddEventSourceLogger(this ILoggingBuilder builder).", error: true)] public static ILoggerFactory AddEventSourceLogger(this ILoggerFactory factory) { ThrowHelper.ThrowIfNull(factory); diff --git a/src/libraries/Microsoft.Extensions.Logging.TraceSource/ref/Microsoft.Extensions.Logging.TraceSource.cs b/src/libraries/Microsoft.Extensions.Logging.TraceSource/ref/Microsoft.Extensions.Logging.TraceSource.cs index 411b8e8e3ff29a..cb8d69261e334f 100644 --- a/src/libraries/Microsoft.Extensions.Logging.TraceSource/ref/Microsoft.Extensions.Logging.TraceSource.cs +++ b/src/libraries/Microsoft.Extensions.Logging.TraceSource/ref/Microsoft.Extensions.Logging.TraceSource.cs @@ -8,12 +8,16 @@ namespace Microsoft.Extensions.Logging { public static partial class TraceSourceFactoryExtensions { + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).", error: true)] public static Microsoft.Extensions.Logging.ILoggerFactory AddTraceSource(this Microsoft.Extensions.Logging.ILoggerFactory factory, System.Diagnostics.SourceSwitch sourceSwitch) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).", error: true)] public static Microsoft.Extensions.Logging.ILoggerFactory AddTraceSource(this Microsoft.Extensions.Logging.ILoggerFactory factory, System.Diagnostics.SourceSwitch sourceSwitch, System.Diagnostics.TraceListener listener) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).", error: true)] public static Microsoft.Extensions.Logging.ILoggerFactory AddTraceSource(this Microsoft.Extensions.Logging.ILoggerFactory factory, string switchName) { throw null; } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] [System.ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).", error: true)] public static Microsoft.Extensions.Logging.ILoggerFactory AddTraceSource(this Microsoft.Extensions.Logging.ILoggerFactory factory, string switchName, System.Diagnostics.TraceListener listener) { throw null; } public static Microsoft.Extensions.Logging.ILoggingBuilder AddTraceSource(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Diagnostics.SourceSwitch sourceSwitch) { throw null; } diff --git a/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/TraceSourceFactoryExtensions.cs b/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/TraceSourceFactoryExtensions.cs index cc2b803dc95d0d..863a069d50366c 100644 --- a/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/TraceSourceFactoryExtensions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/TraceSourceFactoryExtensions.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; +using System.ComponentModel; using System.Diagnostics; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging.TraceSource; @@ -20,7 +21,8 @@ public static class TraceSourceFactoryExtensions /// The to use. /// The to use. /// The so that additional calls can be chained. - [ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).", error: true)] + [EditorBrowsable(EditorBrowsableState.Never)] + [Obsolete("This method is retained only for compatibility. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).", error: true)] public static ILoggerFactory AddTraceSource(this ILoggerFactory factory, System.Diagnostics.SourceSwitch sourceSwitch, System.Diagnostics.TraceListener listener) { ThrowHelper.ThrowIfNull(factory); @@ -38,7 +40,8 @@ public static ILoggerFactory AddTraceSource(this ILoggerFactory factory, System. /// The to use. /// The to use. /// The so that additional calls can be chained. - [ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).", error: true)] + [EditorBrowsable(EditorBrowsableState.Never)] + [Obsolete("This method is retained only for compatibility. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).", error: true)] public static ILoggerFactory AddTraceSource(this ILoggerFactory factory, System.Diagnostics.SourceSwitch sourceSwitch) { ThrowHelper.ThrowIfNull(factory); @@ -56,7 +59,8 @@ public static ILoggerFactory AddTraceSource(this ILoggerFactory factory, System. /// The name of the to use. /// The to use. /// The so that additional calls can be chained. - [ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).", error: true)] + [EditorBrowsable(EditorBrowsableState.Never)] + [Obsolete("This method is retained only for compatibility. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).", error: true)] public static ILoggerFactory AddTraceSource(this ILoggerFactory factory, string switchName, System.Diagnostics.TraceListener listener) { ThrowHelper.ThrowIfNull(factory); @@ -74,7 +78,8 @@ public static ILoggerFactory AddTraceSource(this ILoggerFactory factory, string /// The to use. /// The name of the to use. /// The so that additional calls can be chained. - [ObsoleteAttribute("This method is retained only for compatibility. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).", error: true)] + [EditorBrowsable(EditorBrowsableState.Never)] + [Obsolete("This method is retained only for compatibility. The recommended alternative is AddTraceSource(this ILoggingBuilder builder).", error: true)] public static ILoggerFactory AddTraceSource(this ILoggerFactory factory, string switchName) { ThrowHelper.ThrowIfNull(factory); diff --git a/src/libraries/Microsoft.Extensions.Primitives/ref/Microsoft.Extensions.Primitives.cs b/src/libraries/Microsoft.Extensions.Primitives/ref/Microsoft.Extensions.Primitives.cs index 68eb7e04e95b8f..a5f5f188981cd6 100644 --- a/src/libraries/Microsoft.Extensions.Primitives/ref/Microsoft.Extensions.Primitives.cs +++ b/src/libraries/Microsoft.Extensions.Primitives/ref/Microsoft.Extensions.Primitives.cs @@ -36,6 +36,7 @@ public partial interface IChangeToken bool HasChanged { get; } System.IDisposable RegisterChangeCallback(System.Action callback, object? state); } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] [System.ObsoleteAttribute("This type is retained only for compatibility. The recommended alternative is string.Create (int length, TState state, System.Buffers.SpanAction action).", error: true)] public partial struct InplaceStringBuilder { diff --git a/src/libraries/Microsoft.Extensions.Primitives/src/InplaceStringBuilder.cs b/src/libraries/Microsoft.Extensions.Primitives/src/InplaceStringBuilder.cs index 0bdca90da2a8c8..063de6effb2418 100644 --- a/src/libraries/Microsoft.Extensions.Primitives/src/InplaceStringBuilder.cs +++ b/src/libraries/Microsoft.Extensions.Primitives/src/InplaceStringBuilder.cs @@ -2,12 +2,14 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; +using System.ComponentModel; using System.Diagnostics; using System.Runtime.CompilerServices; namespace Microsoft.Extensions.Primitives { [DebuggerDisplay("Value = {_value}")] + [EditorBrowsable(EditorBrowsableState.Never)] [Obsolete("This type is retained only for compatibility. The recommended alternative is string.Create (int length, TState state, System.Buffers.SpanAction action).", error: true)] public struct InplaceStringBuilder { From 5bdf838de2ccfffae79cbdd752b37030ab5ef2a0 Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Wed, 14 Jun 2023 12:34:01 -0700 Subject: [PATCH 20/21] Remove extensions 2.1 compat infrastructure --- src/libraries/Directory.Build.targets | 59 ------ .../Extensions.CompatibilitySuppressions.xml | 11 -- .../Extensions.CompatibilitySuppressions.xml | 11 -- ...ndencyInjection.Specification.Tests.csproj | 1 - ...icrosoft.Extensions.DependencyModel.csproj | 1 - ...ensions.HostFactoryResolver.Sources.csproj | 1 - .../Extensions.CompatibilitySuppressions.xml | 11 -- ...icrosoft.Extensions.Hosting.Systemd.csproj | 1 - ....Extensions.Hosting.WindowsServices.csproj | 1 - .../Extensions.CompatibilitySuppressions.xml | 11 -- .../Extensions.CompatibilitySuppressions.xml | 32 ---- .../Extensions.CompatibilitySuppressions.xml | 179 ------------------ .../Extensions.CompatibilitySuppressions.xml | 39 ---- .../Extensions.CompatibilitySuppressions.xml | 116 ------------ .../Extensions.CompatibilitySuppressions.xml | 11 -- .../Extensions.CompatibilitySuppressions.xml | 46 ----- .../Extensions.CompatibilitySuppressions.xml | 46 ----- 17 files changed, 577 deletions(-) delete mode 100644 src/libraries/Microsoft.Extensions.Caching.Memory/src/Extensions.CompatibilitySuppressions.xml delete mode 100644 src/libraries/Microsoft.Extensions.Configuration/src/Extensions.CompatibilitySuppressions.xml delete mode 100644 src/libraries/Microsoft.Extensions.Hosting.Abstractions/src/Extensions.CompatibilitySuppressions.xml delete mode 100644 src/libraries/Microsoft.Extensions.Hosting/src/Extensions.CompatibilitySuppressions.xml delete mode 100644 src/libraries/Microsoft.Extensions.Logging.Abstractions/src/Extensions.CompatibilitySuppressions.xml delete mode 100644 src/libraries/Microsoft.Extensions.Logging.Console/src/Extensions.CompatibilitySuppressions.xml delete mode 100644 src/libraries/Microsoft.Extensions.Logging.Debug/src/Extensions.CompatibilitySuppressions.xml delete mode 100644 src/libraries/Microsoft.Extensions.Logging.EventLog/src/Extensions.CompatibilitySuppressions.xml delete mode 100644 src/libraries/Microsoft.Extensions.Logging.EventSource/src/Extensions.CompatibilitySuppressions.xml delete mode 100644 src/libraries/Microsoft.Extensions.Logging.TraceSource/src/Extensions.CompatibilitySuppressions.xml delete mode 100644 src/libraries/Microsoft.Extensions.Options/src/Extensions.CompatibilitySuppressions.xml diff --git a/src/libraries/Directory.Build.targets b/src/libraries/Directory.Build.targets index 531a4f6ffab627..8e000b5f4d7604 100644 --- a/src/libraries/Directory.Build.targets +++ b/src/libraries/Directory.Build.targets @@ -207,63 +207,4 @@ - - - - true - 2.2.0 - $(IntermediateOutputPath)$(MSBuildThisFileName).semaphore - - $([MSBuild]::NormalizePath('$(MSBuildProjectDirectory)', 'Extensions.CompatibilitySuppressions.xml')) - $(ApiCompatGenerateSuppressionFile) - $(ExtensionsCompatSuppressionFilePath) - - - - - - - - - - - - - - - - $([MSBuild]::NormalizePath('$(NuGetPackageRoot)', '$(PackageId.ToLower())', '$(ExtensionsCompatVersion)', '$(PackageId.ToLower()).$(ExtensionsCompatVersion).nupkg')) - - - - - - - - diff --git a/src/libraries/Microsoft.Extensions.Caching.Memory/src/Extensions.CompatibilitySuppressions.xml b/src/libraries/Microsoft.Extensions.Caching.Memory/src/Extensions.CompatibilitySuppressions.xml deleted file mode 100644 index bc8f9f8a04bd58..00000000000000 --- a/src/libraries/Microsoft.Extensions.Caching.Memory/src/Extensions.CompatibilitySuppressions.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - CP0015 - P:Microsoft.Extensions.Caching.Memory.MemoryCacheOptions.CompactOnMemoryPressure:[T:System.ObsoleteAttribute] - lib/netstandard2.0/Microsoft.Extensions.Caching.Memory.dll - lib/netstandard2.0/Microsoft.Extensions.Caching.Memory.dll - true - - \ No newline at end of file diff --git a/src/libraries/Microsoft.Extensions.Configuration/src/Extensions.CompatibilitySuppressions.xml b/src/libraries/Microsoft.Extensions.Configuration/src/Extensions.CompatibilitySuppressions.xml deleted file mode 100644 index b2c810690f9f37..00000000000000 --- a/src/libraries/Microsoft.Extensions.Configuration/src/Extensions.CompatibilitySuppressions.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - CP0002 - M:Microsoft.Extensions.Configuration.ConfigurationSection.#ctor(Microsoft.Extensions.Configuration.ConfigurationRoot,System.String) - lib/netstandard2.0/Microsoft.Extensions.Configuration.dll - lib/netstandard2.0/Microsoft.Extensions.Configuration.dll - true - - \ No newline at end of file diff --git a/src/libraries/Microsoft.Extensions.DependencyInjection.Specification.Tests/src/Microsoft.Extensions.DependencyInjection.Specification.Tests.csproj b/src/libraries/Microsoft.Extensions.DependencyInjection.Specification.Tests/src/Microsoft.Extensions.DependencyInjection.Specification.Tests.csproj index d9ce96fd795a6d..8a167e3eab1283 100644 --- a/src/libraries/Microsoft.Extensions.DependencyInjection.Specification.Tests/src/Microsoft.Extensions.DependencyInjection.Specification.Tests.csproj +++ b/src/libraries/Microsoft.Extensions.DependencyInjection.Specification.Tests/src/Microsoft.Extensions.DependencyInjection.Specification.Tests.csproj @@ -9,7 +9,6 @@ false false $(NoWarn);CA1852 - true true Suite of xUnit.net tests to check for container compatibility with Microsoft.Extensions.DependencyInjection. diff --git a/src/libraries/Microsoft.Extensions.DependencyModel/src/Microsoft.Extensions.DependencyModel.csproj b/src/libraries/Microsoft.Extensions.DependencyModel/src/Microsoft.Extensions.DependencyModel.csproj index cbbc50a4eaa601..ca71ccf4d0d348 100644 --- a/src/libraries/Microsoft.Extensions.DependencyModel/src/Microsoft.Extensions.DependencyModel.csproj +++ b/src/libraries/Microsoft.Extensions.DependencyModel/src/Microsoft.Extensions.DependencyModel.csproj @@ -2,7 +2,6 @@ $(NetCoreAppCurrent);$(NetCoreAppPrevious);$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) true - true true Provides abstractions for reading `.deps` files. When a .NET application is compiled, the SDK generates a JSON manifest file (`<ApplicationName>.deps.json`) that contains information about application dependencies. You can use `Microsoft.Extensions.DependencyModel` to read information from this manifest at run time. This is useful when you want to dynamically compile code (for example, using Roslyn Emit API) referencing the same dependencies as your main application. diff --git a/src/libraries/Microsoft.Extensions.HostFactoryResolver/src/Microsoft.Extensions.HostFactoryResolver.Sources.csproj b/src/libraries/Microsoft.Extensions.HostFactoryResolver/src/Microsoft.Extensions.HostFactoryResolver.Sources.csproj index 67da9469413cf2..0a940e4066e638 100644 --- a/src/libraries/Microsoft.Extensions.HostFactoryResolver/src/Microsoft.Extensions.HostFactoryResolver.Sources.csproj +++ b/src/libraries/Microsoft.Extensions.HostFactoryResolver/src/Microsoft.Extensions.HostFactoryResolver.Sources.csproj @@ -3,7 +3,6 @@ package infra globs for .cs files. --> netstandard2.0 - true true false true diff --git a/src/libraries/Microsoft.Extensions.Hosting.Abstractions/src/Extensions.CompatibilitySuppressions.xml b/src/libraries/Microsoft.Extensions.Hosting.Abstractions/src/Extensions.CompatibilitySuppressions.xml deleted file mode 100644 index 05c7980b18e71d..00000000000000 --- a/src/libraries/Microsoft.Extensions.Hosting.Abstractions/src/Extensions.CompatibilitySuppressions.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - CP0006 - M:Microsoft.Extensions.Hosting.IHostBuilder.UseServiceProviderFactory``1(System.Func{Microsoft.Extensions.Hosting.HostBuilderContext,Microsoft.Extensions.DependencyInjection.IServiceProviderFactory{``0}}) - lib/netstandard2.0/Microsoft.Extensions.Hosting.Abstractions.dll - lib/netstandard2.0/Microsoft.Extensions.Hosting.Abstractions.dll - true - - \ No newline at end of file diff --git a/src/libraries/Microsoft.Extensions.Hosting.Systemd/src/Microsoft.Extensions.Hosting.Systemd.csproj b/src/libraries/Microsoft.Extensions.Hosting.Systemd/src/Microsoft.Extensions.Hosting.Systemd.csproj index 1bf3ff81e63420..0cde5d1ed3c045 100644 --- a/src/libraries/Microsoft.Extensions.Hosting.Systemd/src/Microsoft.Extensions.Hosting.Systemd.csproj +++ b/src/libraries/Microsoft.Extensions.Hosting.Systemd/src/Microsoft.Extensions.Hosting.Systemd.csproj @@ -4,7 +4,6 @@ $(NetCoreAppCurrent);$(NetCoreAppPrevious);$(NetCoreAppMinimum);netstandard2.1 true true - true true .NET hosting infrastructure for Systemd Services. annotations diff --git a/src/libraries/Microsoft.Extensions.Hosting.WindowsServices/src/Microsoft.Extensions.Hosting.WindowsServices.csproj b/src/libraries/Microsoft.Extensions.Hosting.WindowsServices/src/Microsoft.Extensions.Hosting.WindowsServices.csproj index 1e5432646a9b46..827ed114b0cf64 100644 --- a/src/libraries/Microsoft.Extensions.Hosting.WindowsServices/src/Microsoft.Extensions.Hosting.WindowsServices.csproj +++ b/src/libraries/Microsoft.Extensions.Hosting.WindowsServices/src/Microsoft.Extensions.Hosting.WindowsServices.csproj @@ -3,7 +3,6 @@ $(NetCoreAppCurrent);$(NetCoreAppPrevious);$(NetCoreAppMinimum);netstandard2.1;netstandard2.0;$(NetFrameworkMinimum) true - true true .NET hosting infrastructure for Windows Services. true diff --git a/src/libraries/Microsoft.Extensions.Hosting/src/Extensions.CompatibilitySuppressions.xml b/src/libraries/Microsoft.Extensions.Hosting/src/Extensions.CompatibilitySuppressions.xml deleted file mode 100644 index b20e1084d8f437..00000000000000 --- a/src/libraries/Microsoft.Extensions.Hosting/src/Extensions.CompatibilitySuppressions.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - CP0002 - M:Microsoft.Extensions.Hosting.Internal.ConsoleLifetime.#ctor(Microsoft.Extensions.Options.IOptions{Microsoft.Extensions.Hosting.ConsoleLifetimeOptions},Microsoft.Extensions.Hosting.IHostingEnvironment,Microsoft.Extensions.Hosting.IApplicationLifetime) - lib/netstandard2.0/Microsoft.Extensions.Hosting.dll - lib/netstandard2.0/Microsoft.Extensions.Hosting.dll - true - - \ No newline at end of file diff --git a/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/Extensions.CompatibilitySuppressions.xml b/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/Extensions.CompatibilitySuppressions.xml deleted file mode 100644 index 5495b652bf8ebc..00000000000000 --- a/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/Extensions.CompatibilitySuppressions.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - CP0001 - T:Microsoft.Extensions.Logging.Abstractions.Internal.NullScope - lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll - true - - - CP0001 - T:Microsoft.Extensions.Logging.Abstractions.Internal.TypeNameHelper - lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll - true - - - CP0001 - T:Microsoft.Extensions.Logging.Internal.FormattedLogValues - lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll - true - - - CP0001 - T:Microsoft.Extensions.Logging.Internal.LogValuesFormatter - lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll - true - - \ No newline at end of file diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/Extensions.CompatibilitySuppressions.xml b/src/libraries/Microsoft.Extensions.Logging.Console/src/Extensions.CompatibilitySuppressions.xml deleted file mode 100644 index e1ba7392155a0e..00000000000000 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/Extensions.CompatibilitySuppressions.xml +++ /dev/null @@ -1,179 +0,0 @@ - - - - - CP0001 - T:Microsoft.Extensions.Logging.Console.ConsoleLogger - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - true - - - CP0001 - T:Microsoft.Extensions.Logging.Console.ConsoleLogScope - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - true - - - CP0001 - T:Microsoft.Extensions.Logging.Console.Internal.AnsiLogConsole - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - true - - - CP0001 - T:Microsoft.Extensions.Logging.Console.Internal.ConsoleLoggerProcessor - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - true - - - CP0001 - T:Microsoft.Extensions.Logging.Console.Internal.IAnsiSystemConsole - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - true - - - CP0001 - T:Microsoft.Extensions.Logging.Console.Internal.IConsole - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - true - - - CP0001 - T:Microsoft.Extensions.Logging.Console.Internal.LogMessageEntry - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - true - - - CP0001 - T:Microsoft.Extensions.Logging.Console.Internal.WindowsLogConsole - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - true - - - CP0002 - M:Microsoft.Extensions.Logging.Console.ConsoleLoggerProvider.#ctor(Microsoft.Extensions.Logging.Console.IConsoleLoggerSettings) - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - true - - - CP0002 - M:Microsoft.Extensions.Logging.Console.ConsoleLoggerProvider.#ctor(System.Func{System.String,Microsoft.Extensions.Logging.LogLevel,System.Boolean},System.Boolean,System.Boolean) - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - true - - - CP0002 - M:Microsoft.Extensions.Logging.Console.ConsoleLoggerProvider.#ctor(System.Func{System.String,Microsoft.Extensions.Logging.LogLevel,System.Boolean},System.Boolean) - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - true - - - CP0015 - M:Microsoft.Extensions.Logging.Console.ConsoleLoggerProvider.#ctor(Microsoft.Extensions.Logging.Console.IConsoleLoggerSettings):[T:System.ObsoleteAttribute] - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - true - - - CP0015 - M:Microsoft.Extensions.Logging.Console.ConsoleLoggerProvider.#ctor(System.Func{System.String,Microsoft.Extensions.Logging.LogLevel,System.Boolean},System.Boolean,System.Boolean):[T:System.ObsoleteAttribute] - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - true - - - CP0015 - M:Microsoft.Extensions.Logging.Console.ConsoleLoggerProvider.#ctor(System.Func{System.String,Microsoft.Extensions.Logging.LogLevel,System.Boolean},System.Boolean):[T:System.ObsoleteAttribute] - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - true - - - CP0015 - M:Microsoft.Extensions.Logging.ConsoleLoggerExtensions.AddConsole(Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.Configuration.IConfiguration):[T:System.ObsoleteAttribute] - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - true - - - CP0015 - M:Microsoft.Extensions.Logging.ConsoleLoggerExtensions.AddConsole(Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.Logging.Console.IConsoleLoggerSettings):[T:System.ObsoleteAttribute] - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - true - - - CP0015 - M:Microsoft.Extensions.Logging.ConsoleLoggerExtensions.AddConsole(Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.Logging.LogLevel,System.Boolean):[T:System.ObsoleteAttribute] - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - true - - - CP0015 - M:Microsoft.Extensions.Logging.ConsoleLoggerExtensions.AddConsole(Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.Logging.LogLevel):[T:System.ObsoleteAttribute] - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - true - - - CP0015 - M:Microsoft.Extensions.Logging.ConsoleLoggerExtensions.AddConsole(Microsoft.Extensions.Logging.ILoggerFactory,System.Boolean):[T:System.ObsoleteAttribute] - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - true - - - CP0015 - M:Microsoft.Extensions.Logging.ConsoleLoggerExtensions.AddConsole(Microsoft.Extensions.Logging.ILoggerFactory,System.Func{System.String,Microsoft.Extensions.Logging.LogLevel,System.Boolean},System.Boolean):[T:System.ObsoleteAttribute] - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - true - - - CP0015 - M:Microsoft.Extensions.Logging.ConsoleLoggerExtensions.AddConsole(Microsoft.Extensions.Logging.ILoggerFactory,System.Func{System.String,Microsoft.Extensions.Logging.LogLevel,System.Boolean}):[T:System.ObsoleteAttribute] - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - true - - - CP0015 - M:Microsoft.Extensions.Logging.ConsoleLoggerExtensions.AddConsole(Microsoft.Extensions.Logging.ILoggerFactory):[T:System.ObsoleteAttribute] - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - true - - - CP0015 - T:Microsoft.Extensions.Logging.Console.ConfigurationConsoleLoggerSettings:[T:System.ObsoleteAttribute] - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - true - - - CP0015 - T:Microsoft.Extensions.Logging.Console.ConsoleLoggerSettings:[T:System.ObsoleteAttribute] - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - true - - - CP0015 - T:Microsoft.Extensions.Logging.Console.IConsoleLoggerSettings:[T:System.ObsoleteAttribute] - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.Console.dll - true - - \ No newline at end of file diff --git a/src/libraries/Microsoft.Extensions.Logging.Debug/src/Extensions.CompatibilitySuppressions.xml b/src/libraries/Microsoft.Extensions.Logging.Debug/src/Extensions.CompatibilitySuppressions.xml deleted file mode 100644 index 0408efdc406a81..00000000000000 --- a/src/libraries/Microsoft.Extensions.Logging.Debug/src/Extensions.CompatibilitySuppressions.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - CP0001 - T:Microsoft.Extensions.Logging.Debug.DebugLogger - lib/netstandard2.0/Microsoft.Extensions.Logging.Debug.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.Debug.dll - true - - - CP0002 - M:Microsoft.Extensions.Logging.Debug.DebugLoggerProvider.#ctor(System.Func{System.String,Microsoft.Extensions.Logging.LogLevel,System.Boolean}) - lib/netstandard2.0/Microsoft.Extensions.Logging.Debug.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.Debug.dll - true - - - CP0015 - M:Microsoft.Extensions.Logging.DebugLoggerFactoryExtensions.AddDebug(Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.Logging.LogLevel):[T:System.ObsoleteAttribute] - lib/netstandard2.0/Microsoft.Extensions.Logging.Debug.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.Debug.dll - true - - - CP0015 - M:Microsoft.Extensions.Logging.DebugLoggerFactoryExtensions.AddDebug(Microsoft.Extensions.Logging.ILoggerFactory,System.Func{System.String,Microsoft.Extensions.Logging.LogLevel,System.Boolean}):[T:System.ObsoleteAttribute] - lib/netstandard2.0/Microsoft.Extensions.Logging.Debug.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.Debug.dll - true - - - CP0015 - M:Microsoft.Extensions.Logging.DebugLoggerFactoryExtensions.AddDebug(Microsoft.Extensions.Logging.ILoggerFactory):[T:System.ObsoleteAttribute] - lib/netstandard2.0/Microsoft.Extensions.Logging.Debug.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.Debug.dll - true - - \ No newline at end of file diff --git a/src/libraries/Microsoft.Extensions.Logging.EventLog/src/Extensions.CompatibilitySuppressions.xml b/src/libraries/Microsoft.Extensions.Logging.EventLog/src/Extensions.CompatibilitySuppressions.xml deleted file mode 100644 index 7eb6ba52f73691..00000000000000 --- a/src/libraries/Microsoft.Extensions.Logging.EventLog/src/Extensions.CompatibilitySuppressions.xml +++ /dev/null @@ -1,116 +0,0 @@ - - - - - CP0001 - T:Microsoft.Extensions.Logging.EventLog.EventLogLogger - lib/net461/Microsoft.Extensions.Logging.EventLog.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll - true - - - CP0001 - T:Microsoft.Extensions.Logging.EventLog.Internal.IEventLog - lib/net461/Microsoft.Extensions.Logging.EventLog.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll - true - - - CP0001 - T:Microsoft.Extensions.Logging.EventLog.WindowsEventLog - lib/net461/Microsoft.Extensions.Logging.EventLog.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll - true - - - CP0001 - T:Microsoft.Extensions.Logging.EventLog.EventLogLogger - lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll - true - - - CP0001 - T:Microsoft.Extensions.Logging.EventLog.Internal.IEventLog - lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll - true - - - CP0001 - T:Microsoft.Extensions.Logging.EventLog.WindowsEventLog - lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll - true - - - CP0002 - M:Microsoft.Extensions.Logging.EventLog.EventLogSettings.get_EventLog - lib/net461/Microsoft.Extensions.Logging.EventLog.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll - true - - - CP0002 - M:Microsoft.Extensions.Logging.EventLog.EventLogSettings.set_EventLog(Microsoft.Extensions.Logging.EventLog.Internal.IEventLog) - lib/net461/Microsoft.Extensions.Logging.EventLog.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll - true - - - CP0002 - M:Microsoft.Extensions.Logging.EventLog.EventLogSettings.get_EventLog - lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll - true - - - CP0002 - M:Microsoft.Extensions.Logging.EventLog.EventLogSettings.set_EventLog(Microsoft.Extensions.Logging.EventLog.Internal.IEventLog) - lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll - true - - - CP0015 - M:Microsoft.Extensions.Logging.EventLoggerFactoryExtensions.AddEventLog(Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.Logging.EventLog.EventLogSettings):[T:System.ObsoleteAttribute] - lib/net461/Microsoft.Extensions.Logging.EventLog.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll - true - - - CP0015 - M:Microsoft.Extensions.Logging.EventLoggerFactoryExtensions.AddEventLog(Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.Logging.LogLevel):[T:System.ObsoleteAttribute] - lib/net461/Microsoft.Extensions.Logging.EventLog.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll - true - - - CP0015 - M:Microsoft.Extensions.Logging.EventLoggerFactoryExtensions.AddEventLog(Microsoft.Extensions.Logging.ILoggerFactory):[T:System.ObsoleteAttribute] - lib/net461/Microsoft.Extensions.Logging.EventLog.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll - true - - - CP0015 - M:Microsoft.Extensions.Logging.EventLoggerFactoryExtensions.AddEventLog(Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.Logging.EventLog.EventLogSettings):[T:System.ObsoleteAttribute] - lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll - true - - - CP0015 - M:Microsoft.Extensions.Logging.EventLoggerFactoryExtensions.AddEventLog(Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.Logging.LogLevel):[T:System.ObsoleteAttribute] - lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll - true - - - CP0015 - M:Microsoft.Extensions.Logging.EventLoggerFactoryExtensions.AddEventLog(Microsoft.Extensions.Logging.ILoggerFactory):[T:System.ObsoleteAttribute] - lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.EventLog.dll - true - - \ No newline at end of file diff --git a/src/libraries/Microsoft.Extensions.Logging.EventSource/src/Extensions.CompatibilitySuppressions.xml b/src/libraries/Microsoft.Extensions.Logging.EventSource/src/Extensions.CompatibilitySuppressions.xml deleted file mode 100644 index a8aa9e5704a9f4..00000000000000 --- a/src/libraries/Microsoft.Extensions.Logging.EventSource/src/Extensions.CompatibilitySuppressions.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - CP0015 - M:Microsoft.Extensions.Logging.EventSourceLoggerFactoryExtensions.AddEventSourceLogger(Microsoft.Extensions.Logging.ILoggerFactory):[T:System.ObsoleteAttribute] - lib/netstandard2.0/Microsoft.Extensions.Logging.EventSource.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.EventSource.dll - true - - \ No newline at end of file diff --git a/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/Extensions.CompatibilitySuppressions.xml b/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/Extensions.CompatibilitySuppressions.xml deleted file mode 100644 index 8d47cde6b2a1af..00000000000000 --- a/src/libraries/Microsoft.Extensions.Logging.TraceSource/src/Extensions.CompatibilitySuppressions.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - CP0001 - T:Microsoft.Extensions.Logging.TraceSource.TraceSourceLogger - lib/netstandard2.0/Microsoft.Extensions.Logging.TraceSource.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.TraceSource.dll - true - - - CP0001 - T:Microsoft.Extensions.Logging.TraceSource.TraceSourceScope - lib/netstandard2.0/Microsoft.Extensions.Logging.TraceSource.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.TraceSource.dll - true - - - CP0015 - M:Microsoft.Extensions.Logging.TraceSourceFactoryExtensions.AddTraceSource(Microsoft.Extensions.Logging.ILoggerFactory,System.Diagnostics.SourceSwitch,System.Diagnostics.TraceListener):[T:System.ObsoleteAttribute] - lib/netstandard2.0/Microsoft.Extensions.Logging.TraceSource.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.TraceSource.dll - true - - - CP0015 - M:Microsoft.Extensions.Logging.TraceSourceFactoryExtensions.AddTraceSource(Microsoft.Extensions.Logging.ILoggerFactory,System.Diagnostics.SourceSwitch):[T:System.ObsoleteAttribute] - lib/netstandard2.0/Microsoft.Extensions.Logging.TraceSource.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.TraceSource.dll - true - - - CP0015 - M:Microsoft.Extensions.Logging.TraceSourceFactoryExtensions.AddTraceSource(Microsoft.Extensions.Logging.ILoggerFactory,System.String,System.Diagnostics.TraceListener):[T:System.ObsoleteAttribute] - lib/netstandard2.0/Microsoft.Extensions.Logging.TraceSource.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.TraceSource.dll - true - - - CP0015 - M:Microsoft.Extensions.Logging.TraceSourceFactoryExtensions.AddTraceSource(Microsoft.Extensions.Logging.ILoggerFactory,System.String):[T:System.ObsoleteAttribute] - lib/netstandard2.0/Microsoft.Extensions.Logging.TraceSource.dll - lib/netstandard2.0/Microsoft.Extensions.Logging.TraceSource.dll - true - - \ No newline at end of file diff --git a/src/libraries/Microsoft.Extensions.Options/src/Extensions.CompatibilitySuppressions.xml b/src/libraries/Microsoft.Extensions.Options/src/Extensions.CompatibilitySuppressions.xml deleted file mode 100644 index 2a6816494d3658..00000000000000 --- a/src/libraries/Microsoft.Extensions.Options/src/Extensions.CompatibilitySuppressions.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - CP0002 - M:Microsoft.Extensions.Options.OptionsWrapper`1.Add(System.String,`0) - lib/netstandard2.0/Microsoft.Extensions.Options.dll - lib/netstandard2.0/Microsoft.Extensions.Options.dll - true - - - CP0002 - M:Microsoft.Extensions.Options.OptionsWrapper`1.Get(System.String) - lib/netstandard2.0/Microsoft.Extensions.Options.dll - lib/netstandard2.0/Microsoft.Extensions.Options.dll - true - - - CP0002 - M:Microsoft.Extensions.Options.OptionsWrapper`1.Remove(System.String) - lib/netstandard2.0/Microsoft.Extensions.Options.dll - lib/netstandard2.0/Microsoft.Extensions.Options.dll - true - - - CP0015 - M:Microsoft.Extensions.Options.OptionsWrapper`1.Add(System.String,`0):[T:System.ObsoleteAttribute] - lib/netstandard2.0/Microsoft.Extensions.Options.dll - lib/netstandard2.0/Microsoft.Extensions.Options.dll - true - - - CP0015 - M:Microsoft.Extensions.Options.OptionsWrapper`1.Get(System.String):[T:System.ObsoleteAttribute] - lib/netstandard2.0/Microsoft.Extensions.Options.dll - lib/netstandard2.0/Microsoft.Extensions.Options.dll - true - - - CP0015 - M:Microsoft.Extensions.Options.OptionsWrapper`1.Remove(System.String):[T:System.ObsoleteAttribute] - lib/netstandard2.0/Microsoft.Extensions.Options.dll - lib/netstandard2.0/Microsoft.Extensions.Options.dll - true - - \ No newline at end of file From e4883893d08a523ac51f8a4415ab145f4d7b4243 Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Fri, 16 Jun 2023 13:26:56 -0700 Subject: [PATCH 21/21] Remove unused usings --- .../Microsoft.Extensions.Options/src/OptionsWrapper.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/libraries/Microsoft.Extensions.Options/src/OptionsWrapper.cs b/src/libraries/Microsoft.Extensions.Options/src/OptionsWrapper.cs index b25603a080c1e9..4de276d6de35b7 100644 --- a/src/libraries/Microsoft.Extensions.Options/src/OptionsWrapper.cs +++ b/src/libraries/Microsoft.Extensions.Options/src/OptionsWrapper.cs @@ -1,8 +1,6 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System; -using System.ComponentModel; using System.Diagnostics.CodeAnalysis; namespace Microsoft.Extensions.Options