Skip to content

Commit

Permalink
add RequiresPreviewFeaturesAttribute
Browse files Browse the repository at this point in the history
  • Loading branch information
SimonCropp committed Aug 16, 2024
1 parent 324aa04 commit bf797bd
Show file tree
Hide file tree
Showing 3 changed files with 73 additions and 0 deletions.
7 changes: 7 additions & 0 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -342,6 +342,13 @@ struct UnscopedRefUsage
<!-- endSnippet -->


### RequiresPreviewFeaturesAttribute

* [RequiresPreviewFeatures](https://learn.microsoft.com/en-us/dotnet/api/system.runtime.versioning.requirespreviewfeaturesattribute)
* [Design](https://github.com/dotnet/designs/blob/main/accepted/2021/preview-features/preview-features.md)
* [API Proposal](https://github.com/dapr/dotnet-sdk/issues/1219)


### CallerArgumentExpressionAttribute

* [CallerArgumentExpressionAttribute](https://learn.microsoft.com/en-us/dotnet/api/system.runtime.compilerservices.callerargumentexpressionattribute)
Expand Down
5 changes: 5 additions & 0 deletions src/Consume/Consume.cs
Original file line number Diff line number Diff line change
Expand Up @@ -525,4 +525,9 @@ public void Method(string x)
public void Method(object x)
{
}

[RequiresPreviewFeatures("This method uses a preview feature.")]
public void UsePreviewFeature()
{
}
}
61 changes: 61 additions & 0 deletions src/Polyfill/RequiresPreviewFeaturesAttribute .cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
// <auto-generated />
#pragma warning disable

#nullable enable

#if !NET8_0_OR_GREATER

namespace System.Runtime.Versioning;

using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using Link = System.ComponentModel.DescriptionAttribute;

[AttributeUsage(AttributeTargets.Assembly |
AttributeTargets.Module |
AttributeTargets.Class |
AttributeTargets.Interface |
AttributeTargets.Delegate |
AttributeTargets.Struct |
AttributeTargets.Enum |
AttributeTargets.Constructor |
AttributeTargets.Method |
AttributeTargets.Property |
AttributeTargets.Field |
AttributeTargets.Event,
Inherited = false)]
[ExcludeFromCodeCoverage]
[DebuggerNonUserCode]
[Link("https://learn.microsoft.com/en-us/dotnet/api/system.runtime.versioning.requirespreviewfeaturesattribute")]
#if PolyPublic
public
#endif
sealed class RequiresPreviewFeaturesAttribute :
Attribute
{
/// <summary>
/// Initializes a new instance of the <see cref="RequiresPreviewFeaturesAttribute"/> class.
/// </summary>
public RequiresPreviewFeaturesAttribute()
{
}

/// <summary>
/// Initializes a new instance of the <see cref="RequiresPreviewFeaturesAttribute"/> class with the specified message.
/// </summary>
/// <param name="message">An optional message associated with this attribute instance.</param>
public RequiresPreviewFeaturesAttribute(string? message) =>
Message = message;

/// <summary>
/// Returns the optional message associated with this attribute instance.
/// </summary>
public string? Message { get; }

/// <summary>
/// Returns the optional URL associated with this attribute instance.
/// </summary>
public string? Url { get; set; }
}

#endif

0 comments on commit bf797bd

Please sign in to comment.