Uri (string uriString, UriKind uriKind, out bool success)
{
if (uriString == null) {
success = false;
return;
}
if (uriKind != UriKind.RelativeOrAbsolute &&
uriKind != UriKind.Absolute &&
uriKind != UriKind.Relative) {
string msg = Locale.GetText ("Invalid UriKind value '{0}'.", uriKind);
throw new ArgumentException (msg);
}
source = uriString;
if (ParseNoExceptions (uriKind, uriString) != null)
success = false;
else {
success = true;
switch (uriKind) {
case UriKind.Absolute:
if (!IsAbsoluteUri)
success = false;
break;
case UriKind.Relative:
if (IsAbsoluteUri)
success = false;
break;
case UriKind.RelativeOrAbsolute:
break;
default:
success = false;
break;
}
}
}