//
// Static Registration methods
//
//
// Registers a custom Uri parser based on a scheme string
//
public static void Register(UriParser uriParser, string schemeName, int defaultPort)
{
if (uriParser == null)
{
throw new ArgumentNullException(nameof(uriParser));
}
if (schemeName == null)
{
throw new ArgumentNullException(nameof(schemeName));
}
if (schemeName.Length == 1)
{
throw new ArgumentOutOfRangeException(nameof(schemeName));
}
if (!Uri.CheckSchemeName(schemeName))
{
throw new ArgumentOutOfRangeException(nameof(schemeName));
}
if ((defaultPort >= 0xFFFF || defaultPort < 0) && defaultPort != -1)
{
throw new ArgumentOutOfRangeException(nameof(defaultPort));
}
schemeName = schemeName.ToLowerInvariant();
FetchSyntax(uriParser, schemeName, defaultPort);
}