Definition at line 1490 of file Uri.cs.
1491 {
1492 UriInfo
uriInfo =
new UriInfo();
1495 {
1496 bool flag = false;
1498 if ((
cF & Flags.ImplicitFile) != Flags.Zero)
1499 {
1501 while (UriHelper.IsLWS(
_string[i]))
1502 {
1505 }
1507 {
1509 for (
int num = (
int)(
cF & Flags.IndexMask);
i < num && (
_string[
i] ==
'/' ||
_string[
i] ==
'\\');
i++)
1510 {
1511 }
1512 }
1513 }
1514 else
1515 {
1518 {
1520 }
1521 if ((
cF & Flags.AuthorityFound) != Flags.Zero)
1522 {
1524 {
1525 flag = true;
1526 }
1528 if ((
cF & (Flags.DosPath | Flags.UncPath)) != Flags.Zero)
1529 {
1531 {
1532 flag = true;
1533 }
1534 }
1535 }
1536 }
1538 {
1540 }
1541 if ((
cF & Flags.HostTypeMask) == Flags.HostTypeMask ||
StaticInFact(
cF, Flags.DosPath))
1542 {
1547 if (flag)
1548 {
1549 cF |= Flags.SchemeNotCanonical;
1550 }
1551 }
1552 else
1553 {
1555 if (
HostType == Flags.BasicHostType)
1556 {
1560 }
1561 else
1562 {
1563 if ((
cF & Flags.HasUserInfo) != Flags.Zero)
1564 {
1566 {
1567 }
1570 }
1571 else
1572 {
1574 }
1575 i = (int)(
cF & Flags.IndexMask);
1577 if (flag)
1578 {
1579 cF |= Flags.SchemeNotCanonical;
1580 }
1583 if ((
cF & Flags.HasUnicode) != Flags.Zero)
1584 {
1586 }
1588 {
1590 {
1592 {
1595 {
1597 if ((uint)
num3 <= 9
u)
1598 {
1601 {
1603 }
1605 {
1607 if ((uint)
num4 > 9
u)
1608 {
1609 break;
1610 }
1612 }
1613 }
1614 }
1616 {
1618 cF |= Flags.NotDefaultPort;
1619 }
1620 else
1621 {
1623 }
1625 }
1626 }
1627 }
1628 }
1629 }
1630 }
1631 cF |= Flags.MinimalUriInfoSet;
1634 while ((flags & Flags.MinimalUriInfoSet) == Flags.Zero)
1635 {
1636 Flags
value = (
Flags)(((ulong)flags & 0xFFFFFFFFFFFF0000
uL) | (ulong)
cF);
1638 if (
num5 == (ulong)flags)
1639 {
1640 break;
1641 }
1643 }
1644 }
static int CompareExchange(ref int location1, int value, int comparand)
string _originalUnicodeString
static bool StaticInFact(Flags allFlags, Flags checkFlags)
References System.Uri._flags, System.Uri._info, System.Uri._originalUnicodeString, System.Uri._string, System.Uri._syntax, System.Threading.Interlocked.CompareExchange(), System.UriParser.DefaultPort, System.Runtime.Serialization.Dictionary, System.Uri.HostType, System.UriHelper.IsLWS(), System.Uri.OriginalString, System.UriParser.SchemeName, System.Uri.StaticInFact(), System.Uri.UserDrivenParsing, and System.value.
Referenced by System.Uri.EnsureUriInfo().