// // Check reserved chars according to RFC 3987 in a specific component // internal static bool CheckIsReserved(char ch, UriComponents component) { if ((component != UriComponents.Scheme) && (component != UriComponents.UserInfo) && (component != UriComponents.Host) && (component != UriComponents.Port) && (component != UriComponents.Path) && (component != UriComponents.Query) && (component != UriComponents.Fragment) ) { return((component == (UriComponents)0) ? UriHelper.IsGenDelim(ch) : false); } else { switch (component) { // Reserved chars according to RFC 3987 case UriComponents.UserInfo: if (ch == '/' || ch == '?' || ch == '#' || ch == '[' || ch == ']' || ch == '@') { return(true); } break; case UriComponents.Host: if (ch == ':' || ch == '/' || ch == '?' || ch == '#' || ch == '[' || ch == ']' || ch == '@') { return(true); } break; case UriComponents.Path: if (ch == '/' || ch == '?' || ch == '#' || ch == '[' || ch == ']') { return(true); } break; case UriComponents.Query: if (ch == '#' || ch == '[' || ch == ']') { return(true); } break; case UriComponents.Fragment: if (ch == '#' || ch == '[' || ch == ']') { return(true); } break; default: break; } return(false); } }
// // Check reserved chars according to RFC 3987 in a specific component // internal static bool CheckIsReserved(char ch, UriComponents component) { if ((UriComponents.AbsoluteUri & component) == 0) { return(component == 0 && UriHelper.IsGenDelim(ch)); } return(UriHelper.RFC3986ReservedMarks.Contains(ch)); }
// // Check reserved chars according to RFC 3987 in a specific component // internal static bool CheckIsReserved(char ch, UriComponents component) { if ((component != UriComponents.Scheme) && (component != UriComponents.UserInfo) && (component != UriComponents.Host) && (component != UriComponents.Port) && (component != UriComponents.Path) && (component != UriComponents.Query) && (component != UriComponents.Fragment) ) { return((component == (UriComponents)0) ? UriHelper.IsGenDelim(ch) : false); } return(UriHelper.RFC3986ReservedMarks.IndexOf(ch) >= 0); }
// // Check reserved chars according to RFC 3987 in a specific component // internal static bool CheckIsReserved(char ch, UriComponents component) { if ((component != UriComponents.Scheme) && (component != UriComponents.UserInfo) && (component != UriComponents.Host) && (component != UriComponents.Port) && (component != UriComponents.Path) && (component != UriComponents.Query) && (component != UriComponents.Fragment) ) { return((component == (UriComponents)0) ? UriHelper.IsGenDelim(ch) : false); } else if (UriParser.DontEnableStrictRFC3986ReservedCharacterSets) { // Since we aren't enabling strict RFC 3986 reserved sets, we stick with the old behavior // (for app-compat) which was a broken mix of RFCs 2396 and 3986. switch (component) { case UriComponents.UserInfo: if (ch == '/' || ch == '?' || ch == '#' || ch == '[' || ch == ']' || ch == '@') { return(true); } break; case UriComponents.Host: if (ch == ':' || ch == '/' || ch == '?' || ch == '#' || ch == '[' || ch == ']' || ch == '@') { return(true); } break; case UriComponents.Path: if (ch == '/' || ch == '?' || ch == '#' || ch == '[' || ch == ']') { return(true); } break; case UriComponents.Query: if (ch == '#' || ch == '[' || ch == ']') { return(true); } break; case UriComponents.Fragment: if (ch == '#' || ch == '[' || ch == ']') { return(true); } break; default: break; } return(false); } else { return(UriHelper.RFC3986ReservedMarks.IndexOf(ch) >= 0); } }