Table of Contents

SemanticApiVersionAttribute Class

Definition

Namespace
Codebelt.Extensions.Asp.Versioning
Assemblies
Codebelt.Extensions.Asp.Versioning.dll
Source
src/Codebelt.Extensions.Asp.Versioning/SemanticApiVersionAttribute.cs

Defines semantic API version metadata.

public sealed class SemanticApiVersionAttribute : ApiVersionAttribute, IApiVersionProvider
Inheritance
ApiVersionsBaseAttribute
ApiVersionAttribute
SemanticApiVersionAttribute
Implements
IApiVersionProvider
Inherited Members
ApiVersionAttribute.GetHashCode()
ApiVersionAttribute.Deprecated
ApiVersionsBaseAttribute.Equals(object)
ApiVersionsBaseAttribute.Versions

Examples

Use SemanticApiVersionAttribute when an endpoint contract uses Semantic Versioning instead of the usual major/minor API-version shape. The attribute parses the supplied text through SemanticApiVersionParser, so the declared metadata keeps its patch, pre-release, and build metadata.

using System.Linq;
using Codebelt.Extensions.Asp.Versioning;

namespace Codebelt.Extensions.Asp.Versioning;

public class SemanticControllerVersionMetadata
{
    public string GetDeclaredVersion()
    {
        var attribute = new SemanticApiVersionAttribute("2.1.3-rc.1+build.7");
        var version = attribute.Versions.OfType<SemanticApiVersion>().Single();

        return version.ToString();
    }
}

Constructors

Name Description
SemanticApiVersionAttribute(int, int, int, string, string)

Initializes a new instance of the SemanticApiVersionAttribute class.

SemanticApiVersionAttribute(string)

Initializes a new instance of the SemanticApiVersionAttribute class.

See Also

ApiVersionAttribute