Imported Upstream version 3.12.0

Former-commit-id: cf92446697332992ec36726e78eb8703e1f259d7
This commit is contained in:
Jo Shields
2015-01-13 10:44:36 +00:00
parent 8b9b85e7f5
commit 181b81b4a4
659 changed files with 12743 additions and 16300 deletions

View File

@@ -1725,7 +1725,7 @@ namespace System {
private UriParser Parser {
get {
if (parser == null) {
parser = UriParser.GetParser (Scheme);
parser = UriParser.GetParser (scheme);
// no specific parser ? then use a default one
if (parser == null)
parser = new DefaultUriParser ("*");
@@ -1737,6 +1737,9 @@ namespace System {
public string GetComponents (UriComponents components, UriFormat format)
{
if ((components & UriComponents.SerializationInfoString) == 0)
EnsureAbsoluteUri ();
return Parser.GetComponents (this, components, format);
}

View File

@@ -50,6 +50,16 @@ namespace System {
if ((format < UriFormat.UriEscaped) || (format > UriFormat.SafeUnescaped))
throw new ArgumentOutOfRangeException ("format");
if ((components & UriComponents.SerializationInfoString) != 0) {
if (components != UriComponents.SerializationInfoString)
throw new ArgumentOutOfRangeException ("components", "UriComponents.SerializationInfoString must not be combined with other UriComponents.");
if (!uri.IsAbsoluteUri)
return UriHelper.FormatRelative (uri.OriginalString, "", format);
components |= UriComponents.AbsoluteUri;
}
return GetComponentsHelper (uri, components, format);
}