| File: Rules\IRuleRegistrationContext.cs | Web Access |
| Project: src\sdk\src\Compatibility\ApiCompat\Microsoft.DotNet.ApiCompatibility\Microsoft.DotNet.ApiCompatibility.csproj (Microsoft.DotNet.ApiCompatibility) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using Microsoft.CodeAnalysis; namespace Microsoft.DotNet.ApiCompatibility.Rules { /// <summary> /// Interface representing the context of the <see cref="IRuleRunner"/> used to register rule actions. /// This is provided to each rule when instantiating them to add events for the rules to be invoked. /// </summary> public interface IRuleRegistrationContext { /// <summary> /// Registers a callback to invoke when two <see cref="IAssemblySymbol"/> are compared. /// </summary> /// <param name="action">The action to invoke.</param> void RegisterOnAssemblySymbolAction(Action<IAssemblySymbol?, IAssemblySymbol?, MetadataInformation, MetadataInformation, bool, IList<CompatDifference>> action); /// <summary> /// Registers a callback to invoke when two <see cref="ITypeSymbol"/> are compared. /// </summary> /// <param name="action">The action to invoke.</param> void RegisterOnTypeSymbolAction(Action<ITypeSymbol?, ITypeSymbol?, MetadataInformation, MetadataInformation, IList<CompatDifference>> action); /// <summary> /// Registers a callback to invoke when two <see cref="ISymbol"/> members of a <see cref="ITypeSymbol"/> are compared. /// </summary> /// <param name="action">The action to invoke.</param> void RegisterOnMemberSymbolAction(Action<ISymbol?, ISymbol?, MetadataInformation, MetadataInformation, IList<CompatDifference>> action); /// <summary> /// Register a callback to invoke when two <see cref="ISymbol"/> members of a <see cref="ITypeSymbol"/> /// The action to register is invoked with the containing types for left and right. Sometimes this information /// is needed by some rules regardless of left or right being null. /// </summary> /// <param name="action">The action to invoke</param> void RegisterOnMemberSymbolAction(Action<ISymbol?, ISymbol?, ITypeSymbol, ITypeSymbol, MetadataInformation, MetadataInformation, IList<CompatDifference>> action); } }