Class SemanticApiVersionParser
- Namespace
- Codebelt.Extensions.Asp.Versioning
- Assembly
- Codebelt.Extensions.Asp.Versioning.dll
Parses semantic API version strings into SemanticApiVersion instances.
public sealed class SemanticApiVersionParser : IApiVersionParser
- Inheritance
-
SemanticApiVersionParser
- Implements
-
IApiVersionParser
Examples
Use SemanticApiVersionParser when a raw API-version value must be parsed before it is passed into Asp.Versioning services. The parsed result is still an ApiVersion, but callers can use the semantic subtype to inspect patch, pre-release, and build metadata values.
using Asp.Versioning;
using Codebelt.Extensions.Asp.Versioning;
namespace Codebelt.Extensions.Asp.Versioning;
public class SemanticVersionRequestReader
{
public string Describe(string requestedVersion)
{
var parser = new SemanticApiVersionParser();
ApiVersion apiVersion = parser.Parse(requestedVersion);
var semanticVersion = (SemanticApiVersion)apiVersion;
return semanticVersion.Prerelease == null
? $"Stable API {semanticVersion.MajorVersion}.{semanticVersion.MinorVersion}.{semanticVersion.PatchVersion}"
: $"Preview API {semanticVersion.Prerelease}";
}
}
Properties
Default
Gets the default parser instance.
public static SemanticApiVersionParser Default { get; }
Property Value
- SemanticApiVersionParser
The default parser instance.
Methods
Parse(ReadOnlySpan<char>)
Parses the specified text.
public ApiVersion Parse(ReadOnlySpan<char> text)
Parameters
textReadOnlySpan<char>The text to parse as an API version.
Returns
- ApiVersion
The parsed API version.
TryParse(ReadOnlySpan<char>, out ApiVersion)
Attempts to parse the specified text.
public bool TryParse(ReadOnlySpan<char> text, out ApiVersion apiVersion)
Parameters
textReadOnlySpan<char>The text to parse as an API version.
apiVersionApiVersionThe parsed API version or null.
Returns
- bool
True if the parsing was successful; otherwise false.
See Also
IApiVersionParser