| File: IExternalScopeProvider.cs | Web Access |
| Project: src\runtime\src\libraries\Microsoft.Extensions.Logging.Abstractions\src\Microsoft.Extensions.Logging.Abstractions.csproj (Microsoft.Extensions.Logging.Abstractions) |
// 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 { /// <summary> /// Represents a storage of common scope data. /// </summary> public interface IExternalScopeProvider { /// <summary> /// Executes callback for each currently active scope objects in order of creation. /// All callbacks are guaranteed to be called inline from this method. /// </summary> /// <param name="callback">The callback to be executed for every scope object.</param> /// <param name="state">The state object to be passed into the callback.</param> /// <typeparam name="TState">The type of state to accept.</typeparam> void ForEachScope<TState>(Action<object?, TState> callback, TState state); /// <summary> /// Adds scope object to the list. /// </summary> /// <param name="state">The scope object.</param> /// <returns>The <see cref="IDisposable"/> token that removes scope on dispose.</returns> IDisposable Push(object? state); } }