Table of Contents

Class SemanticApiVersionAttribute

Namespace
Codebelt.Extensions.Asp.Versioning
Assembly
Codebelt.Extensions.Asp.Versioning.dll

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

SemanticApiVersionAttribute(int, int, int, string, string)

Initializes a new instance of the SemanticApiVersionAttribute class.

public SemanticApiVersionAttribute(int major, int minor, int patch, string prerelease = null, string buildMetadata = null)

Parameters

major int

The major version number.

minor int

The minor version number.

patch int

The patch version number.

prerelease string

The optional pre-release identifier.

buildMetadata string

The optional build metadata.

Exceptions

ArgumentOutOfRangeException

major, minor, or patch is less than zero.

ArgumentException

prerelease is not a valid semantic version pre-release identifier - or - buildMetadata is not valid semantic version build metadata.

SemanticApiVersionAttribute(string)

Initializes a new instance of the SemanticApiVersionAttribute class.

public SemanticApiVersionAttribute(string version)

Parameters

version string

The semantic API version string to parse.

Exceptions

FormatException

version is not a valid semantic API version.

See Also

ApiVersionAttribute