Редагувати

Поділитися через


FeatureGuardAttribute Class

Definition

Indicates that the specified public static Boolean read-only property guards access to the specified feature.

public ref class FeatureGuardAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Property, AllowMultiple=true, Inherited=false)]
public sealed class FeatureGuardAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Property, AllowMultiple=true, Inherited=false)>]
type FeatureGuardAttribute = class
    inherit Attribute
Public NotInheritable Class FeatureGuardAttribute
Inherits Attribute
Inheritance
FeatureGuardAttribute
Attributes

Examples

if (Feature.IsSupported)
    Feature.Implementation();

public class Feature
{
    [FeatureGuard(typeof(RequiresDynamicCodeAttribute))]
    internal static bool IsSupported => RuntimeFeature.IsDynamicCodeSupported;

    [RequiresDynamicCode("Feature requires dynamic code support.")]
    internal static Implementation() => ...; // Uses dynamic code
}

When the app is built with <PublishAot>true</PublishAot>, the call to Feature.Implementation() doesn't produce analyzer warning IL3050 and Feature.Implementation code is removed when publishing.

Remarks

Analyzers can use this attribute to prevent warnings on calls to code that's annotated as requiring that feature, when the callsite is guarded by a call to the property.

Constructors

FeatureGuardAttribute(Type)

Initializes a new instance of the FeatureGuardAttribute class

with the specified feature type.

Properties

FeatureType

The type that represents the feature guarded by the property.

TypeId

When implemented in a derived class, gets a unique identifier for this Attribute.

(Inherited from Attribute)

Methods

Equals(Object)

Returns a value that indicates whether this instance is equal to a specified object.

(Inherited from Attribute)
GetHashCode()

Returns the hash code for this instance.

(Inherited from Attribute)
GetType()

Gets the Type of the current instance.

(Inherited from Object)
IsDefaultAttribute()

When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Inherited from Attribute)
Match(Object)

When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Inherited from Attribute)
MemberwiseClone()

Creates a shallow copy of the current Object.

(Inherited from Object)
ToString()

Returns a string that represents the current object.

(Inherited from Object)

Applies to