// Copyright (c) Microsoft. All rights reserved.
namespace System.Diagnostics.CodeAnalysis;
///
/// Indicates that the specified method requires dynamic access to code that is not referenced
/// statically, for example through .
///
///
/// This allows tools to understand which methods are unsafe to call when removing unreferenced
/// code from an application.
///
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor | AttributeTargets.Class, Inherited = false)]
[ExcludeFromCodeCoverage]
internal sealed class RequiresUnreferencedCodeAttribute : Attribute
{
///
/// Initializes a new instance of the class
/// with the specified message.
///
///
/// A message that contains information about the usage of unreferenced code.
///
public RequiresUnreferencedCodeAttribute(string message)
{
this.Message = message;
}
///
/// Gets a message that contains information about the usage of unreferenced code.
///
public string Message { get; }
///
/// Gets or sets an optional URL that contains more information about the method,
/// why it requires unreferenced code, and what options a consumer has to deal with it.
///
public string? Url { get; set; }
}