<?xml version="1.0" encoding="utf-8"?>
<Type Name="UriParser" FullName="System.UriParser">
  <TypeSignature Language="C#" Value="public abstract class UriParser" />
  <TypeSignature Language="ILAsm" Value=".class public auto ansi abstract beforefieldinit UriParser extends System.Object" />
  <AssemblyInfo>
    <AssemblyName>System</AssemblyName>
    <AssemblyVersion>2.0.0.0</AssemblyVersion>
    <AssemblyVersion>4.0.0.0</AssemblyVersion>
  </AssemblyInfo>
  <Base>
    <BaseTypeName>System.Object</BaseTypeName>
  </Base>
  <Interfaces />
  <Docs>
    <since version=".NET 2.0" />
    <remarks>
      <attribution license="cc4" from="Microsoft" modified="false" />
      <para>The UriParser class enables you to create parsers for new URI schemes. You can write these parsers in their entirety, or the parsers can be derived from well-known schemes (HTTP, FTP, and other schemes based on network protocols). If you want to create a completely new parser, inherit from <see cref="T:System.GenericUriParser" />. If you want to create a parser that extends a well-known URI scheme, inherit from <see cref="T:System.FtpStyleUriParser" />, <see cref="T:System.HttpStyleUriParser" />, <see cref="T:System.FileStyleUriParser" />, <see cref="T:System.GopherStyleUriParser" />, or <see cref="T:System.LdapStyleUriParser" />.</para>
      <para>Microsoft strongly recommends that you use a parser shipped with the .NET Framework. Building your own parser increases the complexity of your application, and will not perform as well as the shipped parsers.</para>
    </remarks>
    <summary>
      <attribution license="cc4" from="Microsoft" modified="false" />
      <para>Parses a new URI scheme. This is an abstract class.</para>
    </summary>
  </Docs>
  <Members>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="protected UriParser ();" />
      <MemberSignature Language="ILAsm" Value=".method familyhidebysig specialname rtspecialname instance void .ctor() cil managed" />
      <MemberType>Constructor</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Parameters />
      <Docs>
        <remarks>To be added.</remarks>
        <since version=".NET 2.0" />
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Constructs a default URI parser.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="GetComponents">
      <MemberSignature Language="C#" Value="protected virtual string GetComponents (Uri uri, UriComponents components, UriFormat format);" />
      <MemberSignature Language="ILAsm" Value=".method familyorassemblyhidebysig newslot virtual instance string GetComponents(class System.Uri uri, valuetype System.UriComponents components, valuetype System.UriFormat format) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="uri" Type="System.Uri" />
        <Parameter Name="components" Type="System.UriComponents" />
        <Parameter Name="format" Type="System.UriFormat" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Use the <see cref="M:System.UriParser.GetComponents(System.Uri,System.UriComponents,System.UriFormat)" /> method to determine the value of various parts of the URI, such as the <see cref="F:System.UriComponents.Scheme" />, <see cref="F:System.UriComponents.Host" />, or <see cref="F:System.UriComponents.Port" />.</para>
          <para>The components are returned in the order that they appear in the URI. For example, if <see cref="F:System.UriComponents.Scheme" /> is specified, it appears first.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets the components from a URI.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A string that contains the components.</para>
        </returns>
        <param name="uri">
          <attribution license="cc4" from="Microsoft" modified="false" />The URI to parse.</param>
        <param name="components">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.UriComponents" /> to retrieve from <paramref name="uri" />.</param>
        <param name="format">
          <attribution license="cc4" from="Microsoft" modified="false" />One of the <see cref="T:System.UriFormat" /> values that controls how special characters are escaped.</param>
      </Docs>
    </Member>
    <Member MemberName="InitializeAndValidate">
      <MemberSignature Language="C#" Value="protected virtual void InitializeAndValidate (Uri uri, out UriFormatException parsingError);" />
      <MemberSignature Language="ILAsm" Value=".method familyorassemblyhidebysig newslot virtual instance void InitializeAndValidate(class System.Uri uri, class System.UriFormatException parsingError) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="uri" Type="System.Uri" />
        <Parameter Name="parsingError" Type="System.UriFormatException&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <param name="uri">To be added.</param>
        <param name="parsingError">To be added.</param>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="IsBaseOf">
      <MemberSignature Language="C#" Value="protected virtual bool IsBaseOf (Uri baseUri, Uri relativeUri);" />
      <MemberSignature Language="ILAsm" Value=".method familyorassemblyhidebysig newslot virtual instance bool IsBaseOf(class System.Uri baseUri, class System.Uri relativeUri) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="baseUri" Type="System.Uri" />
        <Parameter Name="relativeUri" Type="System.Uri" />
      </Parameters>
      <Docs>
        <remarks>To be added.</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Determines whether <paramref name="baseUri" /> is a base URI for <paramref name="relativeUri" />.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>true if <paramref name="baseUri" /> is a base URI for <paramref name="relativeUri" />; otherwise, false.</para>
        </returns>
        <param name="baseUri">
          <attribution license="cc4" from="Microsoft" modified="false" />The base URI.</param>
        <param name="relativeUri">
          <attribution license="cc4" from="Microsoft" modified="false" />The URI to test.</param>
      </Docs>
    </Member>
    <Member MemberName="IsKnownScheme">
      <MemberSignature Language="C#" Value="public static bool IsKnownScheme (string schemeName);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool IsKnownScheme(string schemeName) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="schemeName" Type="System.String" />
      </Parameters>
      <Docs>
        <remarks>To be added.</remarks>
        <since version=".NET 2.0" />
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Indicates whether the parser for a scheme is registered.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>true if <paramref name="schemeName" /> has been registered; otherwise, false.</para>
        </returns>
        <param name="schemeName">
          <attribution license="cc4" from="Microsoft" modified="false" />The scheme name to check.</param>
      </Docs>
    </Member>
    <Member MemberName="IsWellFormedOriginalString">
      <MemberSignature Language="C#" Value="protected virtual bool IsWellFormedOriginalString (Uri uri);" />
      <MemberSignature Language="ILAsm" Value=".method familyorassemblyhidebysig newslot virtual instance bool IsWellFormedOriginalString(class System.Uri uri) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="uri" Type="System.Uri" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.UriParser.IsWellFormedOriginalString(System.Uri)" /> method will return false if:</para>
          <list type="bullet">
            <item>
              <para>The string is not correctly escaped per RFC 2396.</para>
            </item>
            <item>
              <para>The string represents an absolute URI that references an implicit file URI.</para>
            </item>
            <item>
              <para>The string represents an absolute URI that is missing a forward slash before the path component.</para>
            </item>
            <item>
              <para>The string contains unescaped backslashes, even if they will be treated as forward slashes.</para>
            </item>
          </list>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Indicates whether a URI is well-formed.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>true if <paramref name="uri" /> is well-formed; otherwise, false.</para>
        </returns>
        <param name="uri">
          <attribution license="cc4" from="Microsoft" modified="false" />The URI to check.</param>
      </Docs>
    </Member>
    <Member MemberName="OnNewUri">
      <MemberSignature Language="C#" Value="protected virtual UriParser OnNewUri ();" />
      <MemberSignature Language="ILAsm" Value=".method familyorassemblyhidebysig newslot virtual instance class System.UriParser OnNewUri() cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.UriParser</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The default implementation returns the same <see cref="T:System.UriParser" /> instance. You may need to override this method and return a different <see cref="T:System.UriParser" /> for each invocation if you are operating in a multithreaded environment.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Invoked by a <see cref="T:System.Uri" /> constructor to get a <see cref="T:System.UriParser" /> instance</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A <see cref="T:System.UriParser" /> for the constructed <see cref="T:System.Uri" />.</para>
        </returns>
      </Docs>
    </Member>
    <Member MemberName="OnRegister">
      <MemberSignature Language="C#" Value="protected virtual void OnRegister (string schemeName, int defaultPort);" />
      <MemberSignature Language="ILAsm" Value=".method familyhidebysig newslot virtual instance void OnRegister(string schemeName, int32 defaultPort) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.MonoTODO</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="schemeName" Type="System.String" />
        <Parameter Name="defaultPort" Type="System.Int32" />
      </Parameters>
      <Docs>
        <remarks>To be added.</remarks>
        <since version=".NET 2.0" />
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Invoked by the Framework when a <see cref="T:System.UriParser" /> method is registered.</para>
        </summary>
        <param name="schemeName">
          <attribution license="cc4" from="Microsoft" modified="false" />The scheme that is associated with this <see cref="T:System.UriParser" />.</param>
        <param name="defaultPort">
          <attribution license="cc4" from="Microsoft" modified="false" />The port number of the scheme.</param>
      </Docs>
    </Member>
    <Member MemberName="Register">
      <MemberSignature Language="C#" Value="public static void Register (UriParser uriParser, string schemeName, int defaultPort);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig void Register(class System.UriParser uriParser, string schemeName, int32 defaultPort) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="uriParser" Type="System.UriParser" />
        <Parameter Name="schemeName" Type="System.String" />
        <Parameter Name="defaultPort" Type="System.Int32" />
      </Parameters>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>If the <paramref name="defaultPort" /> parameter is set to -1, the <see cref="M:System.UriParser.Register(System.UriParser,System.String,System.Int32)" /> method registers no default value for the port number.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Associates a scheme and port number with a <see cref="T:System.UriParser" />.</para>
        </summary>
        <param name="uriParser">
          <attribution license="cc4" from="Microsoft" modified="false" />The URI parser to register.</param>
        <param name="schemeName">
          <attribution license="cc4" from="Microsoft" modified="false" />The name of the scheme that is associated with this parser.</param>
        <param name="defaultPort">
          <attribution license="cc4" from="Microsoft" modified="false" />The default port number for the specified scheme.</param>
      </Docs>
    </Member>
    <Member MemberName="Resolve">
      <MemberSignature Language="C#" Value="protected virtual string Resolve (Uri baseUri, Uri relativeUri, out UriFormatException parsingError);" />
      <MemberSignature Language="ILAsm" Value=".method familyorassemblyhidebysig newslot virtual instance string Resolve(class System.Uri baseUri, class System.Uri relativeUri, class System.UriFormatException parsingError) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.MonoTODO</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="baseUri" Type="System.Uri" />
        <Parameter Name="relativeUri" Type="System.Uri" />
        <Parameter Name="parsingError" Type="System.UriFormatException&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <param name="baseUri">To be added.</param>
        <param name="relativeUri">To be added.</param>
        <param name="parsingError">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
  </Members>
</Type>