Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
UriParser.cs
Go to the documentation of this file.
4
5namespace System;
6
7public abstract class UriParser
8{
9 private sealed class BuiltInUriParser : UriParser
10 {
11 internal BuiltInUriParser(string lwrCaseScheme, int defaultPort, UriSyntaxFlags syntaxFlags)
13 {
14 _scheme = lwrCaseScheme;
15 _port = defaultPort;
16 }
17 }
18
19 internal static readonly UriParser HttpUri = new BuiltInUriParser("http", 80, UriSyntaxFlags.AllowAnInternetHost | UriSyntaxFlags.MustHaveAuthority | UriSyntaxFlags.MayHaveUserInfo | UriSyntaxFlags.MayHavePort | UriSyntaxFlags.MayHavePath | UriSyntaxFlags.MayHaveQuery | UriSyntaxFlags.MayHaveFragment | UriSyntaxFlags.AllowUncHost | UriSyntaxFlags.PathIsRooted | UriSyntaxFlags.ConvertPathSlashes | UriSyntaxFlags.CompressPath | UriSyntaxFlags.CanonicalizeAsFilePath | UriSyntaxFlags.AllowIdn | UriSyntaxFlags.AllowIriParsing);
20
21 internal static readonly UriParser HttpsUri = new BuiltInUriParser("https", 443, HttpUri._flags);
22
23 internal static readonly UriParser WsUri = new BuiltInUriParser("ws", 80, UriSyntaxFlags.AllowAnInternetHost | UriSyntaxFlags.MustHaveAuthority | UriSyntaxFlags.MayHaveUserInfo | UriSyntaxFlags.MayHavePort | UriSyntaxFlags.MayHavePath | UriSyntaxFlags.MayHaveQuery | UriSyntaxFlags.MayHaveFragment | UriSyntaxFlags.AllowUncHost | UriSyntaxFlags.PathIsRooted | UriSyntaxFlags.ConvertPathSlashes | UriSyntaxFlags.CompressPath | UriSyntaxFlags.CanonicalizeAsFilePath | UriSyntaxFlags.AllowIdn | UriSyntaxFlags.AllowIriParsing);
24
25 internal static readonly UriParser WssUri = new BuiltInUriParser("wss", 443, UriSyntaxFlags.AllowAnInternetHost | UriSyntaxFlags.MustHaveAuthority | UriSyntaxFlags.MayHaveUserInfo | UriSyntaxFlags.MayHavePort | UriSyntaxFlags.MayHavePath | UriSyntaxFlags.MayHaveQuery | UriSyntaxFlags.MayHaveFragment | UriSyntaxFlags.AllowUncHost | UriSyntaxFlags.PathIsRooted | UriSyntaxFlags.ConvertPathSlashes | UriSyntaxFlags.CompressPath | UriSyntaxFlags.CanonicalizeAsFilePath | UriSyntaxFlags.AllowIdn | UriSyntaxFlags.AllowIriParsing);
26
27 internal static readonly UriParser FtpUri = new BuiltInUriParser("ftp", 21, UriSyntaxFlags.AllowAnInternetHost | UriSyntaxFlags.MustHaveAuthority | UriSyntaxFlags.MayHaveUserInfo | UriSyntaxFlags.MayHavePort | UriSyntaxFlags.MayHavePath | UriSyntaxFlags.MayHaveFragment | UriSyntaxFlags.AllowUncHost | UriSyntaxFlags.PathIsRooted | UriSyntaxFlags.ConvertPathSlashes | UriSyntaxFlags.CompressPath | UriSyntaxFlags.CanonicalizeAsFilePath | UriSyntaxFlags.AllowIdn | UriSyntaxFlags.AllowIriParsing);
28
29 internal static readonly UriParser FileUri = new BuiltInUriParser("file", -1, UriSyntaxFlags.AllowAnInternetHost | UriSyntaxFlags.MustHaveAuthority | UriSyntaxFlags.MayHavePath | UriSyntaxFlags.MayHaveQuery | UriSyntaxFlags.MayHaveFragment | UriSyntaxFlags.AllowEmptyHost | UriSyntaxFlags.AllowUncHost | UriSyntaxFlags.FileLikeUri | UriSyntaxFlags.AllowDOSPath | UriSyntaxFlags.PathIsRooted | UriSyntaxFlags.ConvertPathSlashes | UriSyntaxFlags.CompressPath | UriSyntaxFlags.CanonicalizeAsFilePath | UriSyntaxFlags.UnEscapeDotsAndSlashes | UriSyntaxFlags.AllowIdn | UriSyntaxFlags.AllowIriParsing);
30
31 internal static readonly UriParser UnixFileUri = new BuiltInUriParser("file", -1, UriSyntaxFlags.AllowAnInternetHost | UriSyntaxFlags.MustHaveAuthority | UriSyntaxFlags.MayHavePath | UriSyntaxFlags.MayHaveQuery | UriSyntaxFlags.MayHaveFragment | UriSyntaxFlags.AllowEmptyHost | UriSyntaxFlags.AllowUncHost | UriSyntaxFlags.FileLikeUri | UriSyntaxFlags.AllowDOSPath | UriSyntaxFlags.PathIsRooted | UriSyntaxFlags.CompressPath | UriSyntaxFlags.CanonicalizeAsFilePath | UriSyntaxFlags.UnEscapeDotsAndSlashes | UriSyntaxFlags.AllowIdn | UriSyntaxFlags.AllowIriParsing);
32
33 internal static readonly UriParser GopherUri = new BuiltInUriParser("gopher", 70, UriSyntaxFlags.AllowAnInternetHost | UriSyntaxFlags.MustHaveAuthority | UriSyntaxFlags.MayHaveUserInfo | UriSyntaxFlags.MayHavePort | UriSyntaxFlags.MayHavePath | UriSyntaxFlags.MayHaveFragment | UriSyntaxFlags.AllowUncHost | UriSyntaxFlags.PathIsRooted | UriSyntaxFlags.AllowIdn | UriSyntaxFlags.AllowIriParsing);
34
35 internal static readonly UriParser NntpUri = new BuiltInUriParser("nntp", 119, UriSyntaxFlags.AllowAnInternetHost | UriSyntaxFlags.MustHaveAuthority | UriSyntaxFlags.MayHaveUserInfo | UriSyntaxFlags.MayHavePort | UriSyntaxFlags.MayHavePath | UriSyntaxFlags.MayHaveFragment | UriSyntaxFlags.AllowUncHost | UriSyntaxFlags.PathIsRooted | UriSyntaxFlags.AllowIdn | UriSyntaxFlags.AllowIriParsing);
36
37 internal static readonly UriParser NewsUri = new BuiltInUriParser("news", -1, UriSyntaxFlags.MayHavePath | UriSyntaxFlags.MayHaveFragment | UriSyntaxFlags.AllowIriParsing);
38
39 internal static readonly UriParser MailToUri = new BuiltInUriParser("mailto", 25, UriSyntaxFlags.AllowAnInternetHost | UriSyntaxFlags.MayHaveUserInfo | UriSyntaxFlags.MayHavePort | UriSyntaxFlags.MayHavePath | UriSyntaxFlags.MayHaveQuery | UriSyntaxFlags.MayHaveFragment | UriSyntaxFlags.AllowEmptyHost | UriSyntaxFlags.AllowUncHost | UriSyntaxFlags.MailToLikeUri | UriSyntaxFlags.AllowIdn | UriSyntaxFlags.AllowIriParsing);
40
41 internal static readonly UriParser UuidUri = new BuiltInUriParser("uuid", -1, NewsUri._flags);
42
43 internal static readonly UriParser TelnetUri = new BuiltInUriParser("telnet", 23, UriSyntaxFlags.AllowAnInternetHost | UriSyntaxFlags.MustHaveAuthority | UriSyntaxFlags.MayHaveUserInfo | UriSyntaxFlags.MayHavePort | UriSyntaxFlags.MayHavePath | UriSyntaxFlags.MayHaveFragment | UriSyntaxFlags.AllowUncHost | UriSyntaxFlags.PathIsRooted | UriSyntaxFlags.AllowIdn | UriSyntaxFlags.AllowIriParsing);
44
45 internal static readonly UriParser LdapUri = new BuiltInUriParser("ldap", 389, UriSyntaxFlags.AllowAnInternetHost | UriSyntaxFlags.MustHaveAuthority | UriSyntaxFlags.MayHaveUserInfo | UriSyntaxFlags.MayHavePort | UriSyntaxFlags.MayHavePath | UriSyntaxFlags.MayHaveQuery | UriSyntaxFlags.MayHaveFragment | UriSyntaxFlags.AllowEmptyHost | UriSyntaxFlags.AllowUncHost | UriSyntaxFlags.PathIsRooted | UriSyntaxFlags.AllowIdn | UriSyntaxFlags.AllowIriParsing);
46
47 internal static readonly UriParser NetTcpUri = new BuiltInUriParser("net.tcp", 808, UriSyntaxFlags.AllowAnInternetHost | UriSyntaxFlags.MustHaveAuthority | UriSyntaxFlags.MayHavePort | UriSyntaxFlags.MayHavePath | UriSyntaxFlags.MayHaveQuery | UriSyntaxFlags.MayHaveFragment | UriSyntaxFlags.PathIsRooted | UriSyntaxFlags.ConvertPathSlashes | UriSyntaxFlags.CompressPath | UriSyntaxFlags.CanonicalizeAsFilePath | UriSyntaxFlags.UnEscapeDotsAndSlashes | UriSyntaxFlags.AllowIdn | UriSyntaxFlags.AllowIriParsing);
48
49 internal static readonly UriParser NetPipeUri = new BuiltInUriParser("net.pipe", -1, UriSyntaxFlags.AllowAnInternetHost | UriSyntaxFlags.MustHaveAuthority | UriSyntaxFlags.MayHavePath | UriSyntaxFlags.MayHaveQuery | UriSyntaxFlags.MayHaveFragment | UriSyntaxFlags.PathIsRooted | UriSyntaxFlags.ConvertPathSlashes | UriSyntaxFlags.CompressPath | UriSyntaxFlags.CanonicalizeAsFilePath | UriSyntaxFlags.UnEscapeDotsAndSlashes | UriSyntaxFlags.AllowIdn | UriSyntaxFlags.AllowIriParsing);
50
51 internal static readonly UriParser VsMacrosUri = new BuiltInUriParser("vsmacros", -1, UriSyntaxFlags.AllowAnInternetHost | UriSyntaxFlags.MustHaveAuthority | UriSyntaxFlags.MayHavePath | UriSyntaxFlags.MayHaveFragment | UriSyntaxFlags.AllowEmptyHost | UriSyntaxFlags.AllowUncHost | UriSyntaxFlags.FileLikeUri | UriSyntaxFlags.AllowDOSPath | UriSyntaxFlags.ConvertPathSlashes | UriSyntaxFlags.CompressPath | UriSyntaxFlags.CanonicalizeAsFilePath | UriSyntaxFlags.UnEscapeDotsAndSlashes | UriSyntaxFlags.AllowIdn | UriSyntaxFlags.AllowIriParsing);
52
53 private static readonly Hashtable s_table = new Hashtable(16)
54 {
55 { HttpUri.SchemeName, HttpUri },
56 { HttpsUri.SchemeName, HttpsUri },
57 { WsUri.SchemeName, WsUri },
58 { WssUri.SchemeName, WssUri },
59 { FtpUri.SchemeName, FtpUri },
60 { FileUri.SchemeName, FileUri },
61 { GopherUri.SchemeName, GopherUri },
62 { NntpUri.SchemeName, NntpUri },
63 { NewsUri.SchemeName, NewsUri },
64 { MailToUri.SchemeName, MailToUri },
65 { UuidUri.SchemeName, UuidUri },
66 { TelnetUri.SchemeName, TelnetUri },
67 { LdapUri.SchemeName, LdapUri },
68 { NetTcpUri.SchemeName, NetTcpUri },
69 { NetPipeUri.SchemeName, NetPipeUri },
70 { VsMacrosUri.SchemeName, VsMacrosUri }
71 };
72
73 private static Hashtable s_tempTable = new Hashtable(25);
74
76
77 private int _port;
78
79 private string _scheme;
80
81 internal string SchemeName => _scheme;
82
83 internal int DefaultPort => _port;
84
85 internal UriSyntaxFlags Flags => _flags;
86
87 internal bool IsSimple => InFact(UriSyntaxFlags.SimpleUserSyntax);
88
89 protected UriParser()
91 {
92 }
93
94 protected virtual UriParser OnNewUri()
95 {
96 return this;
97 }
98
99 protected virtual void OnRegister(string schemeName, int defaultPort)
100 {
101 }
102
103 protected virtual void InitializeAndValidate(Uri uri, out UriFormatException? parsingError)
104 {
105 if (uri._syntax == null)
106 {
108 }
109 if (uri._syntax != this)
110 {
112 }
113 ulong num = Interlocked.Or(ref Unsafe.As<Uri.Flags, ulong>(ref uri._flags), 4611686018427387904uL);
114 if ((num & 0x4000000000000000L) != 0L)
115 {
117 }
118 parsingError = uri.ParseMinimal();
119 }
120
121 protected virtual string? Resolve(Uri baseUri, Uri? relativeUri, out UriFormatException? parsingError)
122 {
123 if (baseUri.UserDrivenParsing)
124 {
126 }
127 if (!baseUri.IsAbsoluteUri)
128 {
130 }
131 string newUriString = null;
132 bool userEscaped = false;
133 parsingError = null;
134 Uri uri = Uri.ResolveHelper(baseUri, relativeUri, ref newUriString, ref userEscaped);
135 if (uri != null)
136 {
137 return uri.OriginalString;
138 }
139 return newUriString;
140 }
141
142 protected virtual bool IsBaseOf(Uri baseUri, Uri relativeUri)
143 {
144 return baseUri.IsBaseOfHelper(relativeUri);
145 }
146
147 protected virtual string GetComponents(Uri uri, UriComponents components, UriFormat format)
148 {
149 if (((uint)components & 0x80000000u) != 0 && components != UriComponents.SerializationInfoString)
150 {
151 throw new ArgumentOutOfRangeException("components", components, System.SR.net_uri_NotJustSerialization);
152 }
153 if (((uint)format & 0xFFFFFFFCu) != 0)
154 {
155 throw new ArgumentOutOfRangeException("format");
156 }
157 if (uri.UserDrivenParsing)
158 {
160 }
161 if (!uri.IsAbsoluteUri)
162 {
164 }
165 if (uri.DisablePathAndQueryCanonicalization && (components & UriComponents.PathAndQuery) != 0)
166 {
168 }
169 return uri.GetComponentsHelper(components, format);
170 }
171
172 protected virtual bool IsWellFormedOriginalString(Uri uri)
173 {
175 }
176
177 public static void Register(UriParser uriParser, string schemeName, int defaultPort)
178 {
179 if (uriParser == null)
180 {
181 throw new ArgumentNullException("uriParser");
182 }
183 if (schemeName == null)
184 {
185 throw new ArgumentNullException("schemeName");
186 }
187 if (schemeName.Length == 1)
188 {
189 throw new ArgumentOutOfRangeException("schemeName");
190 }
191 if (!Uri.CheckSchemeName(schemeName))
192 {
193 throw new ArgumentOutOfRangeException("schemeName");
194 }
195 if ((defaultPort >= 65535 || defaultPort < 0) && defaultPort != -1)
196 {
197 throw new ArgumentOutOfRangeException("defaultPort");
198 }
199 schemeName = schemeName.ToLowerInvariant();
200 FetchSyntax(uriParser, schemeName, defaultPort);
201 }
202
203 public static bool IsKnownScheme(string schemeName)
204 {
205 if (schemeName == null)
206 {
207 throw new ArgumentNullException("schemeName");
208 }
209 if (!Uri.CheckSchemeName(schemeName))
210 {
211 throw new ArgumentOutOfRangeException("schemeName");
212 }
213 return GetSyntax(schemeName.ToLowerInvariant())?.NotAny(UriSyntaxFlags.V1_UnknownUri) ?? false;
214 }
215
216 internal bool NotAny(UriSyntaxFlags flags)
217 {
218 return IsFullMatch(flags, UriSyntaxFlags.None);
219 }
220
221 internal bool InFact(UriSyntaxFlags flags)
222 {
223 return !IsFullMatch(flags, UriSyntaxFlags.None);
224 }
225
226 internal bool IsAllSet(UriSyntaxFlags flags)
227 {
228 return IsFullMatch(flags, flags);
229 }
230
231 private bool IsFullMatch(UriSyntaxFlags flags, UriSyntaxFlags expected)
232 {
233 return (_flags & flags) == expected;
234 }
235
236 internal UriParser(UriSyntaxFlags flags)
237 {
238 _flags = flags;
239 _scheme = string.Empty;
240 }
241
242 private static void FetchSyntax(UriParser syntax, string lwrCaseSchemeName, int defaultPort)
243 {
244 if (syntax.SchemeName.Length != 0)
245 {
247 }
248 lock (s_table)
249 {
250 syntax._flags &= ~UriSyntaxFlags.V1_UnknownUri;
251 UriParser uriParser = (UriParser)s_table[lwrCaseSchemeName];
252 if (uriParser != null)
253 {
255 }
256 uriParser = (UriParser)s_tempTable[syntax.SchemeName];
257 if (uriParser != null)
258 {
259 lwrCaseSchemeName = uriParser._scheme;
260 s_tempTable.Remove(lwrCaseSchemeName);
261 }
262 syntax.OnRegister(lwrCaseSchemeName, defaultPort);
263 syntax._scheme = lwrCaseSchemeName;
264 syntax.CheckSetIsSimpleFlag();
265 syntax._port = defaultPort;
266 s_table[syntax.SchemeName] = syntax;
267 }
268 }
269
270 internal static UriParser FindOrFetchAsUnknownV1Syntax(string lwrCaseScheme)
271 {
272 UriParser uriParser = (UriParser)s_table[lwrCaseScheme];
273 if (uriParser != null)
274 {
275 return uriParser;
276 }
277 uriParser = (UriParser)s_tempTable[lwrCaseScheme];
278 if (uriParser != null)
279 {
280 return uriParser;
281 }
282 lock (s_table)
283 {
284 if (s_tempTable.Count >= 512)
285 {
286 s_tempTable = new Hashtable(25);
287 }
288 uriParser = new BuiltInUriParser(lwrCaseScheme, -1, UriSyntaxFlags.AllowAnInternetHost | UriSyntaxFlags.OptionalAuthority | UriSyntaxFlags.MayHaveUserInfo | UriSyntaxFlags.MayHavePort | UriSyntaxFlags.MayHavePath | UriSyntaxFlags.MayHaveQuery | UriSyntaxFlags.MayHaveFragment | UriSyntaxFlags.AllowEmptyHost | UriSyntaxFlags.AllowUncHost | UriSyntaxFlags.V1_UnknownUri | UriSyntaxFlags.AllowDOSPath | UriSyntaxFlags.PathIsRooted | UriSyntaxFlags.ConvertPathSlashes | UriSyntaxFlags.CompressPath | UriSyntaxFlags.AllowIdn | UriSyntaxFlags.AllowIriParsing);
289 s_tempTable[lwrCaseScheme] = uriParser;
290 return uriParser;
291 }
292 }
293
294 internal static UriParser GetSyntax(string lwrCaseScheme)
295 {
296 return (UriParser)(s_table[lwrCaseScheme] ?? s_tempTable[lwrCaseScheme]);
297 }
298
299 internal void CheckSetIsSimpleFlag()
300 {
301 Type type = GetType();
302 if (type == typeof(GenericUriParser) || type == typeof(HttpStyleUriParser) || type == typeof(FtpStyleUriParser) || type == typeof(FileStyleUriParser) || type == typeof(NewsStyleUriParser) || type == typeof(GopherStyleUriParser) || type == typeof(NetPipeStyleUriParser) || type == typeof(NetTcpStyleUriParser) || type == typeof(LdapStyleUriParser))
303 {
304 _flags |= UriSyntaxFlags.SimpleUserSyntax;
305 }
306 }
307
309 {
310 UriParser uriParser = OnNewUri();
311 if (this != uriParser)
312 {
313 uriParser._scheme = _scheme;
314 uriParser._port = _port;
315 uriParser._flags = _flags;
316 }
317 return uriParser;
318 }
319
320 internal void InternalValidate(Uri thisUri, out UriFormatException parsingError)
321 {
322 InitializeAndValidate(thisUri, out parsingError);
323 Interlocked.Or(ref Unsafe.As<Uri.Flags, ulong>(ref thisUri._flags), 4611686018427387904uL);
324 }
325
326 internal string InternalResolve(Uri thisBaseUri, Uri uriLink, out UriFormatException parsingError)
327 {
328 return Resolve(thisBaseUri, uriLink, out parsingError);
329 }
330
331 internal bool InternalIsBaseOf(Uri thisBaseUri, Uri uriLink)
332 {
333 return IsBaseOf(thisBaseUri, uriLink);
334 }
335
336 internal string InternalGetComponents(Uri thisUri, UriComponents uriComponents, UriFormat uriFormat)
337 {
338 return GetComponents(thisUri, uriComponents, uriFormat);
339 }
340
342 {
343 return IsWellFormedOriginalString(thisUri);
344 }
345}
static string net_uri_AlreadyRegistered
Definition SR.cs:22
static string net_uri_InitializeCalledAlreadyOrTooLate
Definition SR.cs:62
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string net_uri_NotAbsolute
Definition SR.cs:16
static string net_uri_UserDrivenParsing
Definition SR.cs:50
static string net_uri_GetComponentsCalledWhenCanonicalizationDisabled
Definition SR.cs:64
static string net_uri_NeedFreshParser
Definition SR.cs:20
static string net_uri_NotJustSerialization
Definition SR.cs:52
Definition SR.cs:7
static int Or(ref int location1, int value)
BuiltInUriParser(string lwrCaseScheme, int defaultPort, UriSyntaxFlags syntaxFlags)
Definition UriParser.cs:11
bool IsAllSet(UriSyntaxFlags flags)
Definition UriParser.cs:226
static readonly UriParser UnixFileUri
Definition UriParser.cs:31
static readonly UriParser LdapUri
Definition UriParser.cs:45
static void Register(UriParser uriParser, string schemeName, int defaultPort)
Definition UriParser.cs:177
bool IsFullMatch(UriSyntaxFlags flags, UriSyntaxFlags expected)
Definition UriParser.cs:231
virtual UriParser OnNewUri()
Definition UriParser.cs:94
virtual void OnRegister(string schemeName, int defaultPort)
Definition UriParser.cs:99
string InternalGetComponents(Uri thisUri, UriComponents uriComponents, UriFormat uriFormat)
Definition UriParser.cs:336
static readonly UriParser FtpUri
Definition UriParser.cs:27
UriSyntaxFlags _flags
Definition UriParser.cs:75
bool InternalIsBaseOf(Uri thisBaseUri, Uri uriLink)
Definition UriParser.cs:331
virtual bool IsWellFormedOriginalString(Uri uri)
Definition UriParser.cs:172
string InternalResolve(Uri thisBaseUri, Uri uriLink, out UriFormatException parsingError)
Definition UriParser.cs:326
static readonly UriParser NewsUri
Definition UriParser.cs:37
UriParser(UriSyntaxFlags flags)
Definition UriParser.cs:236
static readonly UriParser NetTcpUri
Definition UriParser.cs:47
static readonly UriParser WssUri
Definition UriParser.cs:25
static UriParser FindOrFetchAsUnknownV1Syntax(string lwrCaseScheme)
Definition UriParser.cs:270
virtual ? string Resolve(Uri baseUri, Uri? relativeUri, out UriFormatException? parsingError)
Definition UriParser.cs:121
static void FetchSyntax(UriParser syntax, string lwrCaseSchemeName, int defaultPort)
Definition UriParser.cs:242
static readonly UriParser GopherUri
Definition UriParser.cs:33
void CheckSetIsSimpleFlag()
Definition UriParser.cs:299
virtual void InitializeAndValidate(Uri uri, out UriFormatException? parsingError)
Definition UriParser.cs:103
bool NotAny(UriSyntaxFlags flags)
Definition UriParser.cs:216
UriParser InternalOnNewUri()
Definition UriParser.cs:308
static readonly UriParser TelnetUri
Definition UriParser.cs:43
static readonly UriParser VsMacrosUri
Definition UriParser.cs:51
static readonly UriParser FileUri
Definition UriParser.cs:29
virtual string GetComponents(Uri uri, UriComponents components, UriFormat format)
Definition UriParser.cs:147
static readonly UriParser NetPipeUri
Definition UriParser.cs:49
static readonly UriParser UuidUri
Definition UriParser.cs:41
void InternalValidate(Uri thisUri, out UriFormatException parsingError)
Definition UriParser.cs:320
static readonly UriParser HttpsUri
Definition UriParser.cs:21
static readonly Hashtable s_table
Definition UriParser.cs:53
bool InternalIsWellFormedOriginalString(Uri thisUri)
Definition UriParser.cs:341
static readonly UriParser NntpUri
Definition UriParser.cs:35
static readonly UriParser MailToUri
Definition UriParser.cs:39
string SchemeName
Definition UriParser.cs:81
virtual bool IsBaseOf(Uri baseUri, Uri relativeUri)
Definition UriParser.cs:142
bool InFact(UriSyntaxFlags flags)
Definition UriParser.cs:221
static readonly UriParser WsUri
Definition UriParser.cs:23
static bool IsKnownScheme(string schemeName)
Definition UriParser.cs:203
static readonly UriParser HttpUri
Definition UriParser.cs:19
static UriParser GetSyntax(string lwrCaseScheme)
Definition UriParser.cs:294
static Hashtable s_tempTable
Definition UriParser.cs:73
UriParser _syntax
Definition Uri.cs:193
unsafe bool IsBaseOfHelper(Uri uriLink)
Definition Uri.cs:4295
unsafe bool InternalIsWellFormedOriginalString()
Definition Uri.cs:3964
UriFormatException ParseMinimal()
Definition Uri.cs:1343
string GetComponentsHelper(UriComponents uriComponents, UriFormat uriFormat)
Definition Uri.cs:4229
bool UserDrivenParsing
Definition Uri.cs:219
bool DisablePathAndQueryCanonicalization
Definition Uri.cs:217
Flags _flags
Definition Uri.cs:195
bool IsAbsoluteUri
Definition Uri.cs:572
string OriginalString
Definition Uri.cs:516
static bool CheckSchemeName([NotNullWhen(true)] string? schemeName)
Definition Uri.cs:1072
static Uri ResolveHelper(Uri baseUri, Uri relativeUri, ref string newUriString, ref bool userEscaped)
Definition Uri.cs:4149
UriFormat
Definition UriFormat.cs:4