[Mono-list] Help needed with XSLT transformations (documentation browser)

Miguel de Icaza miguel@ximian.com
10 Oct 2002 22:15:08 -0400


--=-93fHrr0xP5IDF4e1jqbG
Content-Type: text/plain
Content-Transfer-Encoding: 7bit

Hello guys,

    I was going to do this manually, but the more code I wrote, the more
I realized that this is the kind of thing that should really be done
with Xslt.  But I do not know Xslt, nor "better practices" with Xslt,
and I fear that this will have a fair amount of duplication. 

    I have attached the ECMA documentation for Type.xml, the idea of
what I want to achieve is to process the XML document and extract a
number of things from it:

        * The type page, something like:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemtypeclasstopic.asp

        * The methods page, something like:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemTypeMethodsTopic.asp

        * The fields page, something like:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemTypeFieldsTopic.asp

        * The properties page, something like:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemTypePropertiesTopic.asp

    Then the tricky ones, given a member (field, property, method,
constructor, operator, do not worry about matching the method signature
correctly, we will figure that out later), render the page with the
data.  

    This is a sample for the property:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemtypeclassassemblytopic.asp

    Can someone help?

Miguel.



--=-93fHrr0xP5IDF4e1jqbG
Content-Disposition: attachment; filename=Type.xml
Content-Transfer-Encoding: quoted-printable
Content-Type: text/xml; name=Type.xml; charset=ISO-8859-1

<Type Name=3D"Type" FullName=3D"System.Type" FullNameSP=3D"System_Type">
  <TypeSignature Language=3D"ILASM" Value=3D".class public abstract seriali=
zable Type extends System.Object" />
  <TypeSignature Language=3D"C#" Value=3D"public abstract class Type : Obje=
ct" />
  <MemberOfLibrary>BCL</MemberOfLibrary>
  <AssemblyInfo>
    <AssemblyName>mscorlib</AssemblyName>
    <AssemblyPublicKey>[00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ]</=
AssemblyPublicKey>
    <AssemblyVersion>1.0.x.x</AssemblyVersion>
    <AssemblyCulture>none</AssemblyCulture>
    <Attributes>
      <Attribute>
        <AttributeName>CLSCompliantAttribute(true)</AttributeName>
        <Excluded>0</Excluded>
      </Attribute>
    </Attributes>
  </AssemblyInfo>
  <ThreadingSafetyStatement>This type is safe for multithreaded operations.=
 </ThreadingSafetyStatement>
  <Docs>
    <summary>
      <para>Provides information about a type.</para>
    </summary>
    <remarks>
      <para> The <see cref=3D"T:System.Type" /> class is abstract, as is th=
e <see cref=3D"T:System.Reflection.MemberInfo" />
class and its subclasses <see cref=3D"T:System.Reflection.FieldInfo" />, <s=
ee cref=3D"T:System.Reflection.PropertyInfo" />, <see cref=3D"T:System.Refl=
ection.MethodBase" />,
and <see cref=3D"T:System.Reflection.EventInfo" />. <see cref=3D"T:System.R=
eflection.ConstructorInfo" /> and <see cref=3D"T:System.Reflection.MethodIn=
fo" />
are subclasses of <see cref=3D"T:System.Reflection.MethodBase" />. The runt=
ime
provides non-public implementations of these classes. <block subset=3D"none=
" type=3D"note"> For example, <see cref=3D"M:System.Type.GetMethod(System.S=
tring,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflec=
tion.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]=
)" /> is typed
as returning a <see cref=3D"T:System.Reflection.MethodInfo" /> object. The
returned object is actually an instance of the non-public runtime type that
implements <see cref=3D"T:System.Reflection.MethodInfo" /> .</block></para>
      <para>A conforming CLI program which is written to run on only the Ke=
rnel profile=20
   cannot subclass <see cref=3D"T:System.Type" />. <block subset=3D"none" t=
ype=3D"note"> This only applies
   to conforming programs not conforming implementations.</block></para>
      <para> A <see cref=3D"T:System.Type" /> object that represents a type=
 is unique; that is, two
<see cref=3D"T:System.Type" /> object=20
references refer to the same object if and only if they represent the same =
type.
This allows for comparison of <see cref=3D"T:System.Type" />
objects using reference
equality.</para>
      <block subset=3D"none" type=3D"note">
        <para> An instance of <see cref=3D"T:System.Type" />
can represent any one of the following
types:</para>
        <list type=3D"bullet">
          <item>
            <term>
     =20
      Classes</term>
          </item>
          <item>
            <term>
     =20
      Value types</term>
          </item>
          <item>
            <term>
     =20
      Arrays</term>
          </item>
          <item>
            <term>
     =20
      Interfaces</term>
          </item>
          <item>
            <term>
     =20
      Pointers</term>
          </item>
          <item>
            <term>
     =20
      Enumerations</term>
          </item>
        </list>
        <para>The following table shows what members of a base class are re=
turned by the
   methods that return members of types, such as <see cref=3D"M:System.Type=
.GetConstructor(System.Reflection.BindingFlags,System.Reflection.Binder,Sys=
tem.Reflection.CallingConventions,System.Type[],System.Reflection.Parameter=
Modifier[])" /> and
<see cref=3D"M:System.Type.GetMethod(System.String,System.Reflection.Bindin=
gFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System=
.Type[],System.Reflection.ParameterModifier[])" />.</para>
        <para>
          <list type=3D"table">
            <listheader>
              <term>Member Type</term>
              <description>Static</description>
              <description>Non-Static</description>
            </listheader>
            <item>
              <term> Constructor</term>
              <description>No</description>
              <description>No</description>
            </item>
            <item>
              <term> Field</term>
              <description>No</description>
              <description>Yes. A field is always
         hide-by-name-and-signature.</description>
            </item>
            <item>
              <term> Event</term>
              <description>Not applicable</description>
              <description> The common type system rule is
         that the inheritance of an event is the same as that of
         the accessors that implement the event.
         Reflection treats events as hide-by-name-and-signature.</descripti=
on>
            </item>
            <item>
              <term> Method</term>
              <description>No</description>
              <description>Yes. A method (both virtual and non-virtual)
         can be hide-by-name or hide-by-name-and-signature.</description>
            </item>
            <item>
              <term> Nested Type</term>
              <description>No</description>
              <description>No</description>
            </item>
            <item>
              <term> Property</term>
              <description>Not applicable</description>
              <description> The common type system
         rule is that the inheritance is the same as that of the
         accessors that implement the property. Reflection treats
         properties as hide-by-name-and-signature.</description>
            </item>
          </list>
        </para>
        <para>For reflection, properties and events are hide-by-name-and-si=
gnature. If a
   property has both a get and a set accessor in the base class, but the de=
rived
   class has only a get accessor, the derived class property hides the base=
 class
   property, and the setter on the base class will not be accessible. </par=
a>
      </block>
    </remarks>
  </Docs>
  <Base>
    <BaseTypeName>System.Object</BaseTypeName>
    <ExcludedBaseTypeName>System.Reflection.MemberInfo</ExcludedBaseTypeNam=
e>
    <ExcludedLibraryName>Reflection</ExcludedLibraryName>
  </Base>
  <Interfaces />
  <Attributes />
  <Members>
    <Member MemberName=3D"Missing">
      <MemberSignature Language=3D"ILASM" Value=3D".field public static ini=
tOnly object Missing" />
      <MemberSignature Language=3D"C#" Value=3D"public static readonly obje=
ct Missing;" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.Object</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para> Represents a missing value in the <see cref=3D"T:System.Ty=
pe" /> information.</para>
        </summary>
        <remarks>
          <para>This field is read-only.</para>
          <para>Use the <see langword=3D"Missing" />=20
field for invocation through reflection to ensure that a call will be made
with the default value of a parameter as specified in the metadata. <block =
subset=3D"none" type=3D"note">If the <see langword=3D"Missing" /> field is =
specified for a
parameter value and there is no default value for that parameter, a <see cr=
ef=3D"T:System.ArgumentException" /> is
thrown.</block></para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"Delimiter">
      <MemberSignature Language=3D"ILASM" Value=3D".field public static ini=
tOnly valuetype System.Char Delimiter" />
      <MemberSignature Language=3D"C#" Value=3D"public static readonly char=
 Delimiter;" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.Char</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para> Specifies the character that separates elements in the ful=
ly qualified name
      of a <see cref=3D"T:System.Type" />
      .</para>
        </summary>
        <remarks>
          <para>This field is read-only.</para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"EmptyTypes">
      <MemberSignature Language=3D"ILASM" Value=3D".field public static ini=
tOnly class System.Type[] EmptyTypes" />
      <MemberSignature Language=3D"C#" Value=3D"public static readonly Type=
[] EmptyTypes;" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.Type</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para> Returns an empty array of type <see cref=3D"T:System.Type"=
 /> .</para>
        </summary>
        <remarks>
          <para>This field is read-only.</para>
          <para>The empty <see cref=3D"T:System.Type" /> array returned by =
this field is used to specify that=20
   lookup methods in the <see cref=3D"T:System.Type" /> class, such as <see=
 cref=3D"M:System.Type.GetMethod(System.String,System.Reflection.BindingFla=
gs,System.Reflection.Binder,System.Reflection.CallingConventions,System.Typ=
e[],System.Reflection.ParameterModifier[])" /> and <see cref=3D"M:System.Ty=
pe.GetConstructor(System.Reflection.BindingFlags,System.Reflection.Binder,S=
ystem.Reflection.CallingConventions,System.Type[],System.Reflection.Paramet=
erModifier[])" />,
   search for members that do not take parameters. <block subset=3D"none" t=
ype=3D"note">For example, to locate the public instance constructor that ta=
kes no
   parameters, invoke <see cref=3D"M:System.Type.GetConstructor(System.Refl=
ection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConve=
ntions,System.Type[],System.Reflection.ParameterModifier[])" /> (<see cref=
=3D"F:System.Reflection.BindingFlags.Public" /> | <see cref=3D"F:System.Ref=
lection.BindingFlags.Instance" />, <see langword=3D"null" />, <see cref=3D"=
F:System.Type.EmptyTypes" />,
<see langword=3D"null" />).</block></para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"InvokeMember">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 virtual abstract object InvokeMember(string name, valuetype System.Reflect=
ion.BindingFlags invokeAttr, class System.Reflection.Binder binder, object =
target, class System.Object[] args, class System.Reflection.ParameterModifi=
er[] modifiers, class System.Globalization.CultureInfo culture, class Syste=
m.String[] namedParameters)" />
      <MemberSignature Language=3D"C#" Value=3D"public abstract object Invo=
keMember(string name, BindingFlags invokeAttr, Binder binder, object target=
, object[] args, ParameterModifier[] modifiers, CultureInfo culture, string=
[] namedParameters);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Object</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"name" Type=3D"System.String" />
        <Parameter Name=3D"invokeAttr" Type=3D"System.Reflection.BindingFla=
gs" />
        <Parameter Name=3D"binder" Type=3D"System.Reflection.Binder" />
        <Parameter Name=3D"target" Type=3D"System.Object" />
        <Parameter Name=3D"args" Type=3D"System.Object[]" />
        <Parameter Name=3D"modifiers" Type=3D"System.Reflection.ParameterMo=
difier[]" />
        <Parameter Name=3D"culture" Type=3D"System.Globalization.CultureInf=
o" />
        <Parameter Name=3D"namedParameters" Type=3D"System.String[]" />
      </Parameters>
      <Docs>
        <summary>
          <para> Invokes or
      accesses a member defined on the type represented by the current inst=
ance
      that matches the specified binding criteria.</para>
        </summary>
        <param name=3D"name">
          <para>A <see cref=3D"T:System.String" /> containing the name of t=
he constructor or method to invoke, or property or field to access. If the =
type represented by the current instance has a default member, specify <see=
 cref=3D"F:System.String.Empty" /> to invoke that member. <block subset=3D"=
none" type=3D"note">For more information on default members, see <see cref=
=3D"T:System.Reflection.DefaultMemberAttribute" /> .</block></para>
        </param>
        <param name=3D"invokeAttr">
          <para>A bitwise combination of <see cref=3D"T:System.Reflection.B=
indingFlags" /> values that control the binding process. If zero is specifi=
ed, <see cref=3D"F:System.Reflection.BindingFlags.Public" /> | <see cref=3D=
"F:System.Reflection.BindingFlags.Instance" /> is used by default.<SPAN /><=
/para>
        </param>
        <param name=3D"target">A <see cref=3D"T:System.Object" /> on which =
to invoke the member that matches the other specified criteria. If the matc=
hing member is <see langword=3D"static" /> , this parameter is ignored.</pa=
ram>
        <param name=3D"args">An array of objects containing the arguments t=
o pass to the member to be invoked. The elements of this array are of the s=
ame number and in the same order by assignment-compatible type as specified=
 by the contract of the member to be bound if and only if <paramref name=3D=
"nameParameters" /> is <see langword=3D"null" />. If <paramref name=3D"name=
dParameters" /> is not <see langword=3D"null" />, the order of the elements=
 in <paramref name=3D"args" /> corresponds to the order of the parameters s=
pecified in <paramref name=3D"namedParameters" />. Specify an empty array o=
r <see langword=3D"null" /> for a member that takes no parameters.</param>
        <param name=3D"modifiers">
          <para>The only defined value for this parameter is <see langword=
=3D"null" /> .</para>
        </param>
        <param name=3D"culture">
          <para>The only defined value for this parameter is <see langword=
=3D"null" /> .</para>
        </param>
        <param name=3D"namedParameters">An array of <see cref=3D"T:System.S=
tring" /> objects containing the names of the parameters to which the value=
s in <paramref name=3D"args" /> are passed. These names are processed in a =
case-sensitive manner and have a one-to-one correspondence with the element=
s of <paramref name=3D"args" />. Specify an empty array or <see langword=3D=
"null" /> for a member that takes no parameters. Specify <see langword=3D"n=
ull" /> to have this parameter ignored.</param>
        <returns>
          <para>A <see cref=3D"T:System.Object" />
containing the return value of the invoked or accessed member. If the membe=
r
does not have a return value, returns a <see cref=3D"T:System.Object" /> co=
ntaining <see cref=3D"T:System.Void" /> .</para>
        </returns>
        <exception cref=3D"T:System.ArgumentNullException">
          <para>
            <paramref name=3D"name" /> is <see langword=3D"null" />.</para>
        </exception>
        <exception cref=3D"T:System.ArgumentException">
          <para>
            <paramref name=3D"args" /> has more than one dimension.</para>
          <para>-or-</para>
          <para>
            <paramref name=3D"invokeAttr" /> is not a valid <see cref=3D"T:=
System.Reflection.BindingFlags" /> value.</para>
          <para>-or-</para>
          <para>The member to be invoked is a constructor and <see cref=3D"=
F:System.Reflection.BindingFlags.CreateInstance" /> is not specified in <pa=
ramref name=3D"invokeAttr" />.</para>
          <para>-or-</para>
          <para>The member to be invoked is a method that is not a type ini=
tializer or instance constructor, and <see cref=3D"F:System.Reflection.Bind=
ingFlags.InvokeMethod" /> is not specified in <paramref name=3D"invokeAttr"=
 />.</para>
          <para>-or-</para>
          <para>The member to be accessed is a field, and neither <see cref=
=3D"F:System.Reflection.BindingFlags.GetField" /> nor <see cref=3D"F:System=
.Reflection.BindingFlags.SetField" /> is specified in <paramref name=3D"inv=
okeAttr" />.</para>
          <para>-or-</para>
          <para>The member to be accessed is a property, and neither <see c=
ref=3D"F:System.Reflection.BindingFlags.GetProperty" /> nor <see cref=3D"F:=
System.Reflection.BindingFlags.SetProperty" /> is specified in <paramref na=
me=3D"invokeAttr" />.</para>
          <para>-or-</para>
          <para>
            <paramref name=3D"invokeAttr" /> contains <see cref=3D"F:System=
.Reflection.BindingFlags.CreateInstance" /> and at least one of <see cref=
=3D"F:System.Reflection.BindingFlags.InvokeMethod" />, <see cref=3D"F:Syste=
m.Reflection.BindingFlags.GetField" />, <see cref=3D"F:System.Reflection.Bi=
ndingFlags.SetField" />, <see cref=3D"F:System.Reflection.BindingFlags.GetP=
roperty" />, or <see cref=3D"F:System.Reflection.BindingFlags.SetProperty" =
/>.</para>
          <para>-or-</para>
          <para>
            <paramref name=3D"invokeAttr" /> contains both <see cref=3D"F:S=
ystem.Reflection.BindingFlags.GetField" /> and <see cref=3D"F:System.Reflec=
tion.BindingFlags.SetField" />.</para>
          <para>-or-</para>
          <para>
            <paramref name=3D"invokeAttr" /> contains both <see cref=3D"F:S=
ystem.Reflection.BindingFlags.GetProperty" /> and <see cref=3D"F:System.Ref=
lection.BindingFlags.SetProperty" />.</para>
          <para>-or-</para>
          <para>
            <paramref name=3D"invokeAttr" /> contains <see cref=3D"F:System=
.Reflection.BindingFlags.InvokeMethod" /> and at least one of <see cref=3D"=
F:System.Reflection.BindingFlags.SetField" /> or <see cref=3D"F:System.Refl=
ection.BindingFlags.SetProperty" />.</para>
          <para>-or-</para>
          <para>
            <paramref name=3D"invokeAttr" /> contains <see cref=3D"F:System=
.Reflection.BindingFlags.SetField" /> and <paramref name=3D"args" /> has mo=
re than one element.</para>
          <para>-or-</para>
          <para>
            <paramref name=3D"namedParameters" />.Length &gt; <paramref nam=
e=3D"args" />.Length .</para>
          <para>-or-</para>
          <para>At least one element in <paramref name=3D"namedParameters" =
/> is <see langword=3D"null" />.</para>
          <para>-or-</para>
          <para>At least one element in <paramref name=3D"args" /> is not a=
ssignment-compatible with the corresponding parameter in <paramref name=3D"=
namedParameters" />.</para>
        </exception>
        <exception cref=3D"T:System.MissingFieldException">A field or prope=
rty matching the specified criteria was not found.</exception>
        <exception cref=3D"T:System.MissingMethodException">A method matchi=
ng the specified criteria cannot be found.</exception>
        <exception cref=3D"T:System.MethodAccessException">The requested me=
mber is non-public and the caller does not have the required permission.</e=
xception>
        <exception cref=3D"T:System.Reflection.TargetException">The member =
matching the specified criteria cannot be invoked on <paramref name=3D"targ=
et" />.</exception>
        <exception cref=3D"T:System.Reflection.TargetInvocationException">T=
he member matching the specified criteria threw an exception.</exception>
        <exception cref=3D"T:System.Reflection.AmbiguousMatchException">Mor=
e than one member matches the specified criteria.</exception>
        <remarks>
          <para>
            <see cref=3D"M:System.Type.InvokeMember(System.String,System.Re=
flection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[=
],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,Sy=
stem.String[])" /> calls a constructor or a method , gets or sets a propert=
y , gets or sets a field, or gets or sets an element of an array.</para>
          <para> The binder finds all of the matching members. These
   members are found based upon the type of binding specified by <paramref =
name=3D"InvokeAttr" /> . The <see cref=3D"M:System.Reflection.Binder.BindTo=
Method(System.Reflection.BindingFlags,System.Reflection.MethodBase[],System=
.Object[]@,System.Reflection.ParameterModifier[],System.Globalization.Cultu=
reInfo,System.String[],System.Object@)" qualify=3D"true" /> is
   responsible for selecting the method to be invoked. The default binder s=
elects
   the most specific match. The set of members is then filtered by name, nu=
mber of
   arguments, and a set of search modifiers defined in the binder. After th=
e member is selected, it is invoked or accessed.
   Accessibility is checked at that point. Access restrictions are ignored =
for fully trusted code; that is, private constructors, methods, fields, and=
 properties can be accessed and invoked via reflection whenever the code is=
 fully trusted.</para>
          <para>The following <see cref=3D"T:System.Reflection.BindingFlags=
" /> are used to define which
members to include in the search:</para>
          <list type=3D"bullet">
            <item>
              <term>
      Specify either <see cref=3D"F:System.Reflection.BindingFlags.Instance=
" /> or <see cref=3D"F:System.Reflection.BindingFlags.Static" />
      to get a return value other than <see langword=3D"null" />.</term>
            </item>
            <item>
              <term>
      Specify <see cref=3D"F:System.Reflection.BindingFlags.Public" /> to i=
nclude public members in
      the search.</term>
            </item>
            <item>
              <term>
      Specify <see cref=3D"F:System.Reflection.BindingFlags.NonPublic" /> t=
o include non-public members
      (that is, private and protected members) in the search.</term>
            </item>
            <item>
              <term>
      Specify <see cref=3D"F:System.Reflection.BindingFlags.FlattenHierarch=
y" /> to include
      static members declared in ancestors in the search.</term>
            </item>
          </list>
          <para>The following <see cref=3D"T:System.Reflection.BindingFlags=
" /> values can be used to change how the
search works:</para>
          <list type=3D"bullet">
            <item>
              <term>
                <see cref=3D"F:System.Reflection.BindingFlags.DeclaredOnly"=
 /> to search only the members=20
      declared in the type, not members that were simply inherited.</term>
            </item>
            <item>
              <term>
                <see cref=3D"F:System.Reflection.BindingFlags.IgnoreCase" /=
> to ignore the case of
   <paramref name=3D"name" />.</term>
            </item>
          </list>
          <para>
            <block subset=3D"none" type=3D"note">For more information, see =
<see cref=3D"T:System.Reflection.BindingFlags" />.</block>
          </para>
          <block subset=3D"none" type=3D"behaviors">
            <para>Each parameter in the <paramref name=3D"namedParameters" =
/> array is assigned the value in the
   corresponding element in the <paramref name=3D"args" /> array. If the le=
ngth of <paramref name=3D"args" /> is
   greater than the length of <paramref name=3D"namedParameters" />, the re=
maining argument values
   are passed in order.</para>
            <para>A member will be found only
   if the number of parameters in the member declaration equals the number =
of
   arguments in the args array (unless default arguments are defined on the
   member). Also, The type of each argument is required to be convertible b=
y
   the binder to the type
   of the parameter. </para>
            <para>It is required that the caller specify values for <paramr=
ef name=3D"bindingAttr" /> as
follows:</para>
            <para>
              <list type=3D"table">
                <listheader>
                  <term>Action</term>
                  <description>BindingFlags</description>
                </listheader>
                <item>
                  <term> Invoke a constructor. </term>
                  <description>
                    <see cref=3D"F:System.Reflection.BindingFlags.CreateIns=
tance" />. This
      flag is not valid with the other flags in this table. If this flag is
      specified, <paramref name=3D"name" /> is ignored. </description>
                </item>
                <item>
                  <term> Invoke a method. </term>
                  <description>
                    <see cref=3D"F:System.Reflection.BindingFlags.InvokeMet=
hod" />. This
   flag if not valid with <see cref=3D"F:System.Reflection.BindingFlags.Cre=
ateInstance" />, <see cref=3D"F:System.Reflection.BindingFlags.SetField" />=
, or <see cref=3D"F:System.Reflection.BindingFlags.SetProperty" />. </descr=
iption>
                </item>
                <item>
                  <term> Define a field value. </term>
                  <description>
                    <see cref=3D"F:System.Reflection.BindingFlags.SetField"=
 />. This
   flag is not valid with <see cref=3D"F:System.Reflection.BindingFlags.Cre=
ateInstance" />, <see cref=3D"F:System.Reflection.BindingFlags.InvokeMethod=
" />, or <see cref=3D"F:System.Reflection.BindingFlags.GetField" />.</descr=
iption>
                </item>
                <item>
                  <term> Return a field value. </term>
                  <description>
                    <see cref=3D"F:System.Reflection.BindingFlags.GetField"=
 />. This
   flag is not valid with <see cref=3D"F:System.Reflection.BindingFlags.Cre=
ateInstance" />, <see cref=3D"F:System.Reflection.BindingFlags.InvokeMethod=
" />, or <see cref=3D"F:System.Reflection.BindingFlags.SetField" />.</descr=
iption>
                </item>
                <item>
                  <term> Set a property. </term>
                  <description>
                    <see cref=3D"F:System.Reflection.BindingFlags.SetProper=
ty" />. This
   flag is not valid with <see cref=3D"F:System.Reflection.BindingFlags.Cre=
ateInstance" />, <see cref=3D"F:System.Reflection.BindingFlags.InvokeMethod=
" />, or <see cref=3D"F:System.Reflection.BindingFlags.GetProperty" />.</de=
scription>
                </item>
                <item>
                  <term> Get a property.</term>
                  <description>
                    <see cref=3D"F:System.Reflection.BindingFlags.GetProper=
ty" />. This
   flag is not valid with <see cref=3D"F:System.Reflection.BindingFlags.Cre=
ateInstance" />, <see cref=3D"F:System.Reflection.BindingFlags.InvokeMethod=
" />, or <see cref=3D"F:System.Reflection.BindingFlags.SetProperty" />.</de=
scription>
                </item>
              </list>
            </para>
            <para>
              <block subset=3D"none" type=3D"note">For more information, se=
e <see cref=3D"T:System.Reflection.BindingFlags" /> .</block>
            </para>
          </block>
          <block subset=3D"none" type=3D"usage">
            <para>
              <see cref=3D"M:System.Type.InvokeMember(System.String,System.=
Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Objec=
t[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,=
System.String[])" /> can be used to invoke methods with
   parameters that have default values. To bind to these methods, <see cref=
=3D"F:System.Reflection.BindingFlags.OptionalParamBinding" /> must be speci=
fied. For a parameter that has a
   default value, the caller can supply a value or supply <see cref=3D"F:Sy=
stem.Type.Missing" />
  =20
   to use the default value.</para>
            <para>
              <see cref=3D"M:System.Type.InvokeMember(System.String,System.=
Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Objec=
t[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,=
System.String[])" /> can be used to set a field to a
particular value by specifying <see cref=3D"F:System.Reflection.BindingFlag=
s.SetField" /> . For example, to set a public instance field named F on cla=
ss C, where F is a string, the value is set using the following statement:<=
/para>
            <para>
              <c>typeof(C).InvokeMember("F", BindingFlags.SetField, null, C=
, new Object{
   "strings new value"}, null, null, null);</c>
            </para>
            <para> A string array F can be initialized as follows:</para>
            <c>
              <para>typeof(C).InvokeMember("F", BindingFlags.SetField, null=
, C, new Object{new
      String[]{"a","z","c","d"}, null, null, null);</para>
            </c>
            <para> Use <see cref=3D"M:System.Type.InvokeMember(System.Strin=
g,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,Sys=
tem.Object[],System.Reflection.ParameterModifier[],System.Globalization.Cul=
tureInfo,System.String[])" /> to set the value of an element in an array by=
 specifying the index of the value and the new value for the element as fol=
lows:</para>
            <para>
              <c>typeof(C).InvokeMember("F", BindingFlags.SetField, null, C=
, new Object{1,
   "b"}, null, null, null);</c>
            </para>
            <para>The preceding statement changes "z" in array
   F to "b". </para>
          </block>
        </remarks>
        <permission cref=3D"T:System.Security.Permissions.ReflectionPermiss=
ion">Requires permission to retrieve information on non-public members of t=
ypes in loaded assemblies. See <see cref=3D"F:System.Security.Permissions.R=
eflectionPermissionFlag.TypeInformation" />.</permission>
        <example>
          <para>The following example demonstrates the use of <see cref=3D"=
M:System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,Sys=
tem.Reflection.Binder,System.Object,System.Object[],System.Reflection.Param=
eterModifier[],System.Globalization.CultureInfo,System.String[])" /> to
   construct a <see cref=3D"T:System.String" />, obtain its <see cref=3D"P:=
System.String.Length" /> property, invoke <see cref=3D"M:System.String.Inse=
rt(System.Int32,System.String)" /> on it, and
   then set its value using the <see cref=3D"F:System.String.Empty" /> fiel=
d.</para>
          <code lang=3D"C#">using System;
using System.Reflection;

class InvokeMemberExample
{
   static void Main(string[] args)
   {
      // Create the parameter arrays that will
      // be passed to InvokeMember.
      char[] cAry =3D=20
      new char[] {'A',' ','s','t','r','i','n','g'};
      object[] oAry =3D new object[] {cAry, 0, cAry.Length};

      Type t =3D typeof(string);

      // Invoke the constructor of a string.
      string str =3D
         (string)t.InvokeMember(null, BindingFlags.Instance |
         BindingFlags.Public | BindingFlags.CreateInstance, null,
         null, oAry, null, null, null);
      Console.WriteLine("The string is \"{0}\".", str);

      // Access a property of the string.
      int i =3D
         (int) t.InvokeMember("Length", BindingFlags.Instance |
         BindingFlags.Public | BindingFlags.GetProperty, null,=20
         str, null, null, null, null);
      Console.WriteLine("The length of the string is {0}.", i);

      // Invoke a method on the string.
      string newStr =3D "new ";
      object[] oAry2 =3D new Object[] {2, newStr};
      str =3D (string) t.InvokeMember("Insert", BindingFlags.Instance |
         BindingFlags.Public | BindingFlags.InvokeMethod, null, str,=20
         oAry2, null, null, null);
      Console.WriteLine("The modified string is \"{0}\".", str);

      // Access a field of the string.
      str =3D (string) t.InvokeMember("Empty", BindingFlags.Static |=20
         BindingFlags.Public | BindingFlags.GetField, null, str,=20
         null);
      Console.WriteLine("The empty string is \"{0}\".", str);
 =20
   }
}
</code>
          <para>The output is </para>
          <c>
            <para>The string is "A string". </para>
            <para>The length of the string is 8. </para>
            <para> The modified string is "A new string"</para>
            <para>The empty string is "". </para>
          </c>
        </example>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetMembers">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 virtual abstract class System.Reflection.MemberInfo[] GetMembers(valuetype=
 System.Reflection.BindingFlags bindingAttr)" />
      <MemberSignature Language=3D"C#" Value=3D"public abstract MemberInfo[=
] GetMembers(BindingFlags bindingAttr);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.MemberInfo[]</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"bindingAttr" Type=3D"System.Reflection.BindingFl=
ags" />
      </Parameters>
      <Docs>
        <summary>
          <para>Returns an array of <see cref=3D"T:System.Reflection.Member=
Info" /> objects that reflect the members that are
   defined in the type represented by the current instance and match the sp=
ecified
   binding constraints.</para>
        </summary>
        <param name=3D"bindingAttr">
          <para>A bitwise combination of <see cref=3D"T:System.Reflection.B=
indingFlags" /> values that control the binding process. If zero is specifi=
ed, this method returns <see langword=3D"null" /> . </para>
        </param>
        <returns>
          <para>An array of <see cref=3D"T:System.Reflection.MemberInfo" />=
 objects that reflect the members
   defined in the type represented by the current instance that match the
   constraints of <paramref name=3D"bindingAttr" /> . If no members match t=
hese constraints,
   returns an empty array. If the type represented by the current instance =
is from
   a loaded assembly and the caller does not have sufficient permission to =
reflect
   on non-public objects in loaded assemblies, returns only public members.=
</para>
        </returns>
        <remarks>
          <para>The following <see cref=3D"T:System.Reflection.BindingFlags=
" /> are used to define which
   members to include in the search:</para>
          <list type=3D"bullet">
            <item>
              <term>
     =20
      Specify either <see cref=3D"F:System.Reflection.BindingFlags.Instance=
" /> or <see cref=3D"F:System.Reflection.BindingFlags.Static" />
      to get a return value other than <see langword=3D"null" />.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.Public" /> to i=
nclude public members in
      the search.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.NonPublic" /> t=
o include non-public members
      (that is, private and protected members) in the search.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.FlattenHierarch=
y" /> to include
      static members declared in ancestors in the search.</term>
            </item>
          </list>
          <para>The following <see cref=3D"T:System.Reflection.BindingFlags=
" /> values can be used to change how the
search works:</para>
          <list type=3D"bullet">
            <item>
              <term>
                <see cref=3D"F:System.Reflection.BindingFlags.DeclaredOnly"=
 /> to search only the members
      declared in the type, not members that were simply inherited.</term>
            </item>
          </list>
          <para>
            <block subset=3D"none" type=3D"note">For more information, see =
<see cref=3D"T:System.Reflection.BindingFlags" />.</block>
          </para>
          <para>
            <block subset=3D"none" type=3D"behaviors">As described above.</=
block>
          </para>
        </remarks>
        <permission cref=3D"T:System.Security.Permissions.ReflectionPermiss=
ion">Requires permission to retrieve information on non-public members of t=
ypes in loaded assemblies. See <see cref=3D"F:System.Security.Permissions.R=
eflectionPermissionFlag.TypeInformation" />.</permission>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetMember">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 virtual class System.Reflection.MemberInfo[] GetMember(string name, valuet=
ype System.Reflection.BindingFlags bindingAttr)" />
      <MemberSignature Language=3D"C#" Value=3D"public virtual MemberInfo[]=
 GetMember(string name, BindingFlags bindingAttr);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.MemberInfo[]</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"name" Type=3D"System.String" />
        <Parameter Name=3D"bindingAttr" Type=3D"System.Reflection.BindingFl=
ags" />
      </Parameters>
      <Docs>
        <summary>
          <para>Returns an array of <see cref=3D"T:System.Reflection.Member=
Info" /> objects that reflect the members defined in
   the type represented by the current instance that have the specified nam=
e
   and match the specified binding constraints.</para>
        </summary>
        <param name=3D"name">A <see cref=3D"T:System.String" /> containing =
the name of the member to be returned.</param>
        <param name=3D"bindingAttr">
          <para>A bitwise combination of <see cref=3D"T:System.Reflection.B=
indingFlags" /> values that control the binding process. If zero is specifi=
ed, this method returns <see langword=3D"null" /> . </para>
        </param>
        <returns>
          <para>An array of <see cref=3D"T:System.Reflection.MemberInfo" />=
 objects that reflect the members
   named <paramref name=3D"name" />, are defined in the type represented by=
 the current instance
   and match the constraints of <paramref name=3D"bindingAttr" /> .
   If no members match these constraints, returns an empty array.
   If the selected member is non-public, the type reflected by the current =
instance is from a
   loaded assembly and the caller does not have sufficient permission to re=
flect on
   non-public objects in loaded assemblies, returns <see langword=3D"null" =
/> .</para>
        </returns>
        <exception cref=3D"T:System.ArgumentNullException">
          <paramref name=3D"name" /> is <see langword=3D"null" />. </except=
ion>
        <remarks>
          <para>The following <see cref=3D"T:System.Reflection.BindingFlags=
" /> are used to define which
   members to include in the search:</para>
          <list type=3D"bullet">
            <item>
              <term>
      Specify either <see cref=3D"F:System.Reflection.BindingFlags.Instance=
" /> or <see cref=3D"F:System.Reflection.BindingFlags.Static" />
      to get a return value other than <see langword=3D"null" />.</term>
            </item>
            <item>
              <term>
      Specify <see cref=3D"F:System.Reflection.BindingFlags.Public" /> to i=
nclude public members in
      the search.</term>
            </item>
            <item>
              <term>
      Specify <see cref=3D"F:System.Reflection.BindingFlags.NonPublic" /> t=
o include non-public members
      (that is, private and protected members) in the search.</term>
            </item>
            <item>
              <term>
      Specify <see cref=3D"F:System.Reflection.BindingFlags.FlattenHierarch=
y" /> to include
      static members declared in ancestors in the search.</term>
            </item>
          </list>
          <para>The following <see cref=3D"T:System.Reflection.BindingFlags=
" /> values can be used to change how the
search works:</para>
          <list type=3D"bullet">
            <item>
              <term>
                <see cref=3D"F:System.Reflection.BindingFlags.DeclaredOnly"=
 /> to search only the members
   declared in the type, not members that were simply inherited.</term>
            </item>
            <item>
              <term>
                <see cref=3D"F:System.Reflection.BindingFlags.IgnoreCase" /=
> to ignore the case of
   <paramref name=3D"name" />.</term>
            </item>
          </list>
          <para>
            <block subset=3D"none" type=3D"note">For more information, see =
<see cref=3D"T:System.Reflection.BindingFlags" />.</block>
          </para>
          <para>
            <block subset=3D"none" type=3D"behaviors">As described above.</=
block>
          </para>
        </remarks>
        <permission cref=3D"T:System.Security.Permissions.ReflectionPermiss=
ion">Requires permission to retrieve information on non-public members of t=
ypes in loaded assemblies. See <see cref=3D"F:System.Security.Permissions.R=
eflectionPermissionFlag.TypeInformation" />.</permission>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetProperties">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 virtual abstract class System.Reflection.PropertyInfo[] GetProperties(valu=
etype System.Reflection.BindingFlags bindingAttr)" />
      <MemberSignature Language=3D"C#" Value=3D"public abstract PropertyInf=
o[] GetProperties(BindingFlags bindingAttr);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.PropertyInfo[]</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"bindingAttr" Type=3D"System.Reflection.BindingFl=
ags" />
      </Parameters>
      <Docs>
        <summary>
          <para>Returns an array of <see cref=3D"T:System.Reflection.Proper=
tyInfo" /> objects that reflect the properties
   defined for the type represented by the current instance that match the =
specified
   binding constraints.</para>
        </summary>
        <param name=3D"bindingAttr">
          <para>A bitwise combination of <see cref=3D"T:System.Reflection.B=
indingFlags" /> values that control the binding process. If zero is specifi=
ed, this method returns <see langword=3D"null" /> . </para>
        </param>
        <returns>
          <para>An array of <see cref=3D"T:System.Reflection.PropertyInfo" =
/> objects that reflect the properties
   defined in the type represented by the current instance and match the
   constraints of <paramref name=3D"bindingAttr" /> . If no matching proper=
ties are found,
   returns an empty array. If the type represented by the current instance =
is from
   a loaded assembly and the caller does not have permission to reflect on
   non-public objects in loaded assemblies, returns only public properties.=
</para>
        </returns>
        <remarks>
          <para>The following <see cref=3D"T:System.Reflection.BindingFlags=
" /> are used to define which
   members to include in the search:</para>
          <list type=3D"bullet">
            <item>
              <term>
     =20
      Specify either <see cref=3D"F:System.Reflection.BindingFlags.Instance=
" /> or <see cref=3D"F:System.Reflection.BindingFlags.Static" />
      to get a return value other than <see langword=3D"null" />.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.Public" /> to i=
nclude public members in
      the search.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.NonPublic" /> t=
o include non-public members
      (that is, private and protected members) in the search.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.FlattenHierarch=
y" /> to include
      static members declared in ancestors in the search.</term>
            </item>
          </list>
          <para>The following <see cref=3D"T:System.Reflection.BindingFlags=
" /> values can be used to change how the
search works:</para>
          <list type=3D"bullet">
            <item>
              <term>
                <see cref=3D"F:System.Reflection.BindingFlags.DeclaredOnly"=
 /> to search only the members
      declared in the type, not members that were simply inherited.</term>
            </item>
          </list>
          <para>
            <block subset=3D"none" type=3D"note">For more information, see =
<see cref=3D"T:System.Reflection.BindingFlags" />.</block>
          </para>
          <para>
            <block subset=3D"none" type=3D"behaviors">A property is conside=
red by
   reflection to be <see langword=3D"public" /> if it has at least one acce=
ssor that is
<see langword=3D"public" /> . Otherwise, the property is not
<see langword=3D"public" />.</block>
          </para>
        </remarks>
        <permission cref=3D"T:System.Security.Permissions.ReflectionPermiss=
ion">Requires permission to retrieve information on non-public members of t=
ypes in loaded assemblies. See <see cref=3D"F:System.Security.Permissions.R=
eflectionPermissionFlag.TypeInformation" />.</permission>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetProperty">
      <MemberSignature Language=3D"ILASM" Value=3D".method public final hid=
ebysig virtual class System.Reflection.PropertyInfo GetProperty(string name=
, valuetype System.Reflection.BindingFlags bindingAttr, class System.Reflec=
tion.Binder binder, class System.Type returnType, class System.Type[] types=
, class System.Reflection.ParameterModifier[] modifiers)" />
      <MemberSignature Language=3D"C#" Value=3D"public PropertyInfo GetProp=
erty(string name, BindingFlags bindingAttr, Binder binder, Type returnType,=
 Type[] types, ParameterModifier[] modifiers);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.PropertyInfo</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"name" Type=3D"System.String" />
        <Parameter Name=3D"bindingAttr" Type=3D"System.Reflection.BindingFl=
ags" />
        <Parameter Name=3D"binder" Type=3D"System.Reflection.Binder" />
        <Parameter Name=3D"returnType" Type=3D"System.Type" />
        <Parameter Name=3D"types" Type=3D"System.Type[]" />
        <Parameter Name=3D"modifiers" Type=3D"System.Reflection.ParameterMo=
difier[]" />
      </Parameters>
      <Docs>
        <summary>
          <para>Returns a <see cref=3D"T:System.Reflection.PropertyInfo" />=
 object that reflects the property
   defined in the type represented by the current instance that matches the=
 specified search
   criteria .</para>
        </summary>
        <param name=3D"name">A <see cref=3D"T:System.String" /> containing =
the name of the property to be returned.</param>
        <param name=3D"bindingAttr">
          <para>A bitwise combination of <see cref=3D"T:System.Reflection.B=
indingFlags" /> values that control the binding process. If zero is specifi=
ed, this method returns <see langword=3D"null" /> . </para>
        </param>
        <param name=3D"binder">
          <para>A <see cref=3D"T:System.Reflection.Binder" /> object that d=
efines a set of properties and enables the binding, coercion of argument ty=
pes, and invocation of members using reflection. Specify <see langword=3D"n=
ull" /> to use the <see cref=3D"P:System.Type.DefaultBinder" /> .</para>
        </param>
        <param name=3D" returnType">A <see cref=3D"T:System.Type" /> object=
 that represents the type of the property to be returned.</param>
        <param name=3D"types">
          <para>An array of <see cref=3D"T:System.Type" /> objects. The ele=
ments in the array are of the same number, in the same order, and represent=
 the same types as the parameters for the indexer to be returned. Specify <=
see cref=3D"F:System.Type.EmptyTypes" /> to obtain a property that is not i=
ndexed.</para>
        </param>
        <param name=3D"modifiers">The only defined value for this parameter=
 is <see langword=3D"null" /> .</param>
        <returns>
          <para>A <see cref=3D"T:System.Reflection.PropertyInfo" /> object
   reflecting the property that is defined in the type represented by the
   current instance and matches the specified criteria. If no matching prop=
erty is
   found, returns <see langword=3D"null" /> . If the type reflected by the =
current
   instance is contained in a loaded assembly, the property that matches th=
e
   specified criteria is not public, and the caller does not have sufficien=
t
   permission, returns <see langword=3D"null" />.</para>
        </returns>
        <exception cref=3D"T:System.Reflection.AmbiguousMatchException">Mor=
e than one property matching the specified criteria was found.</exception>
        <exception cref=3D"T:System.ArgumentNullException">
          <para>
            <paramref name=3D"name" /> or <paramref name=3D"types" /> is <s=
ee langword=3D"null" />, or at least one of the elements in <paramref name=
=3D"types" /> is <see langword=3D"null" />.</para>
        </exception>
        <exception cref=3D"T:System.ArgumentException">
          <para>
            <paramref name=3D"types" /> has more than one dimension.</para>
        </exception>
        <remarks>
          <para>The following <see cref=3D"T:System.Reflection.BindingFlags=
" /> are used to define which
   members to include in the search:</para>
          <list type=3D"bullet">
            <item>
              <term>
     =20
      Specify either <see cref=3D"F:System.Reflection.BindingFlags.Instance=
" /> or <see cref=3D"F:System.Reflection.BindingFlags.Static" />
      to get a return value other than <see langword=3D"null" />.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.Public" /> to i=
nclude public members in
      the search.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.NonPublic" /> t=
o include non-public members
      (that is, private and protected members) in the search.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.FlattenHierarch=
y" /> to include
      static members declared in ancestors in the search.</term>
            </item>
          </list>
          <para>The following <see cref=3D"T:System.Reflection.BindingFlags=
" /> values can be used to change how the
search works:</para>
          <list type=3D"bullet">
            <item>
              <term>
                <see cref=3D"F:System.Reflection.BindingFlags.DeclaredOnly"=
 /> to search only the members=20
      declared in the type, not members that were simply inherited.</term>
            </item>
            <item>
              <term>
                <see cref=3D"F:System.Reflection.BindingFlags.IgnoreCase" /=
> to ignore the case of
   <paramref name=3D"name" />.</term>
            </item>
          </list>
          <para>
            <block subset=3D"none" type=3D"note">For more information, see =
<see cref=3D"T:System.Reflection.BindingFlags" />.</block>
          </para>
          <para>This version of <see cref=3D"M:System.Type.GetProperty(Syst=
em.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Ty=
pe,System.Type[],System.Reflection.ParameterModifier[])" /> is equivalent t=
o <see cref=3D"M:System.Type.GetPropertyImpl(System.String,System.Reflectio=
n.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Re=
flection.ParameterModifier[])" />(<paramref name=3D"name" />, <paramref nam=
e=3D"bindingAttr" />, <paramref name=3D"binder" />,
<paramref name=3D"returnType" />, <paramref name=3D"types" />, <paramref na=
me=3D"modifiers" />).</para>
          <para>The search for <paramref name=3D"name" /> is case-sensitive=
.</para>
          <para> Different programming languages use different syntax to
   specify indexed properties. Internally, this property is referred to by =
the name
   "Item" in the metadata. Therefore, any attempt to retrieve an indexed pr=
operty
   using reflection is required to specify this internal
   name in order for the <see langword=3D"PropertyInfo" /> to be returned c=
orrectly.</para>
        </remarks>
        <permission cref=3D"T:System.Security.Permissions.ReflectionPermiss=
ion">Requires permission to retrieve information on non-public members of t=
ypes in loaded assemblies. See <see cref=3D"F:System.Security.Permissions.R=
eflectionPermissionFlag.TypeInformation" />.</permission>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetProperty">
      <MemberSignature Language=3D"ILASM" Value=3D".method public final hid=
ebysig virtual class System.Reflection.PropertyInfo GetProperty(string name=
, valuetype System.Reflection.BindingFlags bindingAttr)" />
      <MemberSignature Language=3D"C#" Value=3D"public PropertyInfo GetProp=
erty(string name, BindingFlags bindingAttr);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.PropertyInfo</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"name" Type=3D"System.String" />
        <Parameter Name=3D"bindingAttr" Type=3D"System.Reflection.BindingFl=
ags" />
      </Parameters>
      <Docs>
        <summary>
          <para>Returns a <see cref=3D"T:System.Reflection.PropertyInfo" />=
 object that reflects the property defined
   in the type represented by the current instance that matches the specifi=
ed search
   criteria.</para>
        </summary>
        <param name=3D"name">A <see cref=3D"T:System.String" /> containing =
the name of the property to be returned.</param>
        <param name=3D"bindingAttr">
          <para>A bitwise combination of <see cref=3D"T:System.Reflection.B=
indingFlags" /> values that control the binding process. If zero is specifi=
ed, this method returns <see langword=3D"null" /> . </para>
        </param>
        <returns>
          <para>A <see cref=3D"T:System.Reflection.PropertyInfo" />
object reflecting the property defined in the type represented by
the current instance that matches the specified criteria. If no matching pr=
operty is
found, returns <see langword=3D"null" /> . If the type reflected by the cur=
rent
instance is contained in a loaded assembly, the property that matches the
specified criteria is not public, and the caller does not have sufficient
permission, returns <see langword=3D"null" />.</para>
        </returns>
        <exception cref=3D"T:System.Reflection.AmbiguousMatchException">Mor=
e than one property matching the specified criteria was found.</exception>
        <exception cref=3D"T:System.ArgumentNullException">
          <para>
            <paramref name=3D"name" /> is <see langword=3D"null" />.</para>
        </exception>
        <remarks>
          <para>The following <see cref=3D"T:System.Reflection.BindingFlags=
" /> are used to define which
   members to include in the search:</para>
          <list type=3D"bullet">
            <item>
              <term>
     =20
      Specify either <see cref=3D"F:System.Reflection.BindingFlags.Instance=
" /> or <see cref=3D"F:System.Reflection.BindingFlags.Static" />
      to get a return value other than <see langword=3D"null" />.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.Public" /> to i=
nclude public members in
      the search.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.NonPublic" /> t=
o include non-public members
      (that is, private and protected members) in the search.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.FlattenHierarch=
y" /> to include
      static members declared in ancestors in the search.</term>
            </item>
          </list>
          <para>The following <see cref=3D"T:System.Reflection.BindingFlags=
" /> values can be used to change how the
search works:</para>
          <list type=3D"bullet">
            <item>
              <term>
                <see cref=3D"F:System.Reflection.BindingFlags.DeclaredOnly"=
 /> to search only the members=20
      declared in the type, not members that were simply inherited.</term>
            </item>
            <item>
              <term>
                <see cref=3D"F:System.Reflection.BindingFlags.IgnoreCase" /=
> to ignore the case of
   <paramref name=3D"name" />.</term>
            </item>
          </list>
          <para>
            <block subset=3D"none" type=3D"note">For more information, see =
<see cref=3D"T:System.Reflection.BindingFlags" />.</block>
          </para>
          <para>This version of <see cref=3D"M:System.Type.GetProperty(Syst=
em.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Ty=
pe,System.Type[],System.Reflection.ParameterModifier[])" /> is equivalent t=
o <see cref=3D"M:System.Type.GetPropertyImpl(System.String,System.Reflectio=
n.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Re=
flection.ParameterModifier[])" />(<paramref name=3D"name" />, <paramref nam=
e=3D"bindingAttr" />,
<see langword=3D"null" />, <see langword=3D"null" />, <see langword=3D"null=
" />,=20
<see langword=3D"null" />).</para>
          <para>The search for <paramref name=3D"name" /> is case-sensitive=
.</para>
        </remarks>
        <permission cref=3D"T:System.Security.Permissions.ReflectionPermiss=
ion">Requires permission to retrieve information on non-public members of t=
ypes in loaded assemblies. See <see cref=3D"F:System.Security.Permissions.R=
eflectionPermissionFlag.TypeInformation" />.</permission>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetFields">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 virtual abstract class System.Reflection.FieldInfo[] GetFields(valuetype S=
ystem.Reflection.BindingFlags bindingAttr)" />
      <MemberSignature Language=3D"C#" Value=3D"public abstract FieldInfo[]=
 GetFields(BindingFlags bindingAttr);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.FieldInfo[]</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"bindingAttr" Type=3D"System.Reflection.BindingFl=
ags" />
      </Parameters>
      <Docs>
        <summary>
          <para>Returns an array of <see cref=3D"T:System.Reflection.FieldI=
nfo" /> objects that reflect the fields that are
   defined in the type represented by the current instance and match the sp=
ecified
   binding constraints.</para>
        </summary>
        <param name=3D"bindingAttr">
          <para>A bitwise combination of <see cref=3D"T:System.Reflection.B=
indingFlags" /> values that control the binding process. If zero is specifi=
ed, this method returns <see langword=3D"null" /> . </para>
        </param>
        <returns>
          <para>An array of <see cref=3D"T:System.Reflection.FieldInfo" /> =
objects that reflect the fields that are
   defined in the type represented by the current instance and match the
   constraints of <paramref name=3D"bindingAttr" /> . If no fields match
   these constraints, returns an empty array. If the type represented by th=
e
   current instance is from a loaded assembly and the caller does not have
   sufficient permission to reflect on non-public objects in loaded assembl=
ies,
   returns only public fields.</para>
        </returns>
        <remarks>
          <para>The following <see cref=3D"T:System.Reflection.BindingFlags=
" /> are used to define which
   fields to include in the search:</para>
          <list type=3D"bullet">
            <item>
              <term>
     =20
      Specify either <see cref=3D"F:System.Reflection.BindingFlags.Instance=
" /> or <see cref=3D"F:System.Reflection.BindingFlags.Static" /> in
      order to get a return value other than <see langword=3D"null" />.</te=
rm>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.Public" /> to i=
nclude public fields in
      the search.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.NonPublic" /> t=
o include non-public fields
      (that is, private and protected fields) in the search.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.FlattenHierarch=
y" /> to include
      static members declared in ancestors in the search.</term>
            </item>
          </list>
          <para>The following <see cref=3D"T:System.Reflection.BindingFlags=
" /> values can be used to change how the
search works:</para>
          <list type=3D"bullet">
            <item>
              <term>
                <see cref=3D"F:System.Reflection.BindingFlags.DeclaredOnly"=
 /> to search only the fields
      declared in the type, not fields that were simply inherited.</term>
            </item>
          </list>
          <para>
            <block subset=3D"none" type=3D"note">For more information, see =
<see cref=3D"T:System.Reflection.BindingFlags" />.</block>
          </para>
          <para>
            <block subset=3D"none" type=3D"behaviors">As described above.</=
block>
          </para>
        </remarks>
        <permission cref=3D"T:System.Security.Permissions.ReflectionPermiss=
ion">Requires permission to retrieve information on non-public members of a=
 type in loaded assemblies. See <see cref=3D"F:System.Security.Permissions.=
ReflectionPermissionFlag.TypeInformation" />.</permission>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetField">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 virtual abstract class System.Reflection.FieldInfo GetField(string name, v=
aluetype System.Reflection.BindingFlags bindingAttr)" />
      <MemberSignature Language=3D"C#" Value=3D"public abstract FieldInfo G=
etField(string name, BindingFlags bindingAttr);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.FieldInfo</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"name" Type=3D"System.String" />
        <Parameter Name=3D"bindingAttr" Type=3D"System.Reflection.BindingFl=
ags" />
      </Parameters>
      <Docs>
        <summary>
          <para>Returns a <see cref=3D"T:System.Reflection.FieldInfo" /> ob=
ject reflecting the field that has the
   specified name, is defined in the type represented by the current instan=
ce, and
   matches the specified binding constraints.</para>
        </summary>
        <param name=3D"name">A <see cref=3D"T:System.String" /> containing =
the name of the field to be returned.</param>
        <param name=3D"bindingAttr">
          <para>A bitwise combination of <see cref=3D"T:System.Reflection.B=
indingFlags" /> values that control the binding process. If zero is specifi=
ed, this method returns <see langword=3D"null" /> . </para>
        </param>
        <returns>
          <para>A <see cref=3D"T:System.Reflection.FieldInfo" /> object ref=
lecting the field that is named
<paramref name=3D"name" />, is defined in the type represented by the curre=
nt instance, and=20
   matches the constraints of <paramref name=3D"bindingAttr" />. If a field=
 matching these criteria
   cannot be found, returns <see langword=3D"null" />. If the field is not =
public, the current type is
   from a loaded assembly, and the caller does not have sufficient permissi=
on,
   returns <see langword=3D"null" />.</para>
        </returns>
        <exception cref=3D"T:System.ArgumentNullException">
          <paramref name=3D"name" /> is <see langword=3D"null" />. </except=
ion>
        <remarks>
          <para>The following <see cref=3D"T:System.Reflection.BindingFlags=
" /> are used to define which
   fields to include in the search:</para>
          <list type=3D"bullet">
            <item>
              <term>
      Specify either <see cref=3D"F:System.Reflection.BindingFlags.Instance=
" /> or <see cref=3D"F:System.Reflection.BindingFlags.Static" />
      to get a return value other than <see langword=3D"null" />.</term>
            </item>
            <item>
              <term>
      Specify <see cref=3D"F:System.Reflection.BindingFlags.Public" /> to i=
nclude public fields in
      the search.</term>
            </item>
            <item>
              <term>
      Specify <see cref=3D"F:System.Reflection.BindingFlags.NonPublic" /> t=
o include non-public fields
      (that is, private and protected fields) in the search.</term>
            </item>
            <item>
              <term>
      Specify <see cref=3D"F:System.Reflection.BindingFlags.FlattenHierarch=
y" /> to
      include static members declared in ancestors in the search.</term>
            </item>
          </list>
          <para>The following <see cref=3D"T:System.Reflection.BindingFlags=
" /> values can be used to change how the
search works:</para>
          <list type=3D"bullet">
            <item>
              <term>
                <see cref=3D"F:System.Reflection.BindingFlags.DeclaredOnly"=
 /> to search only the fields
   declared in the type, not fields that were simply inherited.</term>
            </item>
            <item>
              <term>
                <see cref=3D"F:System.Reflection.BindingFlags.IgnoreCase" /=
> to ignore the case of
   <paramref name=3D"name" />.</term>
            </item>
          </list>
          <para>
            <block subset=3D"none" type=3D"note">For more information, see =
<see cref=3D"T:System.Reflection.BindingFlags" />.</block>
          </para>
          <para>
            <block subset=3D"none" type=3D"behaviors">As described above.</=
block>
          </para>
        </remarks>
        <permission cref=3D"T:System.Security.Permissions.ReflectionPermiss=
ion">Requires permission to retrieve information on non-public members of t=
ypes in loaded assemblies. See <see cref=3D"F:System.Security.Permissions.R=
eflectionPermissionFlag.TypeInformation" />.</permission>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetMethods">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 virtual abstract class System.Reflection.MethodInfo[] GetMethods(valuetype=
 System.Reflection.BindingFlags bindingAttr)" />
      <MemberSignature Language=3D"C#" Value=3D"public abstract MethodInfo[=
] GetMethods(BindingFlags bindingAttr);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.MethodInfo[]</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"bindingAttr" Type=3D"System.Reflection.BindingFl=
ags" />
      </Parameters>
      <Docs>
        <summary>
          <para>Returns an array of <see cref=3D"T:System.Reflection.Method=
Info" /> objects that reflect the methods defined in the type
   represented by the current instance that match the specified binding con=
straints.</para>
        </summary>
        <param name=3D"bindingAttr">
          <para>A bitwise combination of <see cref=3D"T:System.Reflection.B=
indingFlags" /> values that control the binding process. If zero is specifi=
ed, this method returns <see langword=3D"null" /> . </para>
        </param>
        <returns>
          <para>An array of <see cref=3D"T:System.Reflection.MethodInfo" />=
 objects reflecting the methods defined in the type
   represented by the current instance that match the constraints of
<paramref name=3D"bindingAttr" /> . If no such methods found, returns an=20
   empty array. If the type represented by the current instance is from a l=
oaded
   assembly and the caller does not have permission to reflect on non-publi=
c
   objects in loaded assemblies, returns only public methods.</para>
        </returns>
        <remarks>
          <para>The following <see cref=3D"T:System.Reflection.BindingFlags=
" /> are used to define which
   members to include in the search:</para>
          <list type=3D"bullet">
            <item>
              <term>
     =20
      Specify either <see cref=3D"F:System.Reflection.BindingFlags.Instance=
" /> or <see cref=3D"F:System.Reflection.BindingFlags.Static" />
      to get a return value other than <see langword=3D"null" />.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.Public" /> to i=
nclude public members in
      the search.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.NonPublic" /> t=
o include non-public members
      (that is, private and protected members) in the search.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.FlattenHierarch=
y" /> to include
      static members declared in ancestors in the search.</term>
            </item>
          </list>
          <para>The following <see cref=3D"T:System.Reflection.BindingFlags=
" /> values can be used to change how the
search works:</para>
          <list type=3D"bullet">
            <item>
              <term>
                <see cref=3D"F:System.Reflection.BindingFlags.DeclaredOnly"=
 /> to search only the members
      declared in the type, not members that were simply inherited.</term>
            </item>
          </list>
          <para>
            <block subset=3D"none" type=3D"note">For more information, see =
<see cref=3D"T:System.Reflection.BindingFlags" />.</block>
          </para>
          <para>
            <block subset=3D"none" type=3D"behaviors">As described above.</=
block>
          </para>
        </remarks>
        <permission cref=3D"T:System.Security.Permissions.ReflectionPermiss=
ion">Requires permission to retrieve information on non-public members of t=
ypes in loaded assemblies. See <see cref=3D"F:System.Security.Permissions.R=
eflectionPermissionFlag.TypeInformation" />.</permission>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetMethod">
      <MemberSignature Language=3D"ILASM" Value=3D".method public final hid=
ebysig virtual class System.Reflection.MethodInfo GetMethod(string name, va=
luetype System.Reflection.BindingFlags bindingAttr)" />
      <MemberSignature Language=3D"C#" Value=3D"public MethodInfo GetMethod=
(string name, BindingFlags bindingAttr);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.MethodInfo</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"name" Type=3D"System.String" />
        <Parameter Name=3D"bindingAttr" Type=3D"System.Reflection.BindingFl=
ags" />
      </Parameters>
      <Docs>
        <summary>
          <para>Returns a <see cref=3D"T:System.Reflection.MethodInfo" /> o=
bject that reflects the method that has the
   specified name and is defined in the type represented by the current
   instance.</para>
        </summary>
        <param name=3D"name">A <see cref=3D"T:System.String" /> containing =
the name of the method to be returned.</param>
        <param name=3D"bindingAttr">
          <para>A bitwise combination of <see cref=3D"T:System.Reflection.B=
indingFlags" /> values that control the binding process. If zero is specifi=
ed, this method returns <see langword=3D"null" /> . </para>
        </param>
        <returns>
          <para>A <see cref=3D"T:System.Reflection.MethodInfo" /> object
   that reflects the method that is defined
   in the type represented by the current instance and matches the specifie=
d
   criteria, if found; otherwise, <see langword=3D"null" />.</para>
        </returns>
        <exception cref=3D"T:System.Reflection.AmbiguousMatchException">Mor=
e than one method matching the specified criteria was found.</exception>
        <exception cref=3D"T:System.ArgumentNullException">
          <paramref name=3D"name" /> is <see langword=3D"null" />.</excepti=
on>
        <remarks>
          <para>The following <see cref=3D"T:System.Reflection.BindingFlags=
" /> are used to define which
   members to include in the search:</para>
          <list type=3D"bullet">
            <item>
              <term>
     =20
      Specify either <see cref=3D"F:System.Reflection.BindingFlags.Instance=
" /> or <see cref=3D"F:System.Reflection.BindingFlags.Static" />
      to get a return value other than <see langword=3D"null" />.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.Public" /> to i=
nclude public members in
      the search.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.NonPublic" /> t=
o include non-public members
      (that is, private and protected members) in the search.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.FlattenHierarch=
y" /> to include
      static members declared in ancestors in the search.</term>
            </item>
          </list>
          <para>The following <see cref=3D"T:System.Reflection.BindingFlags=
" /> values can be used to change how the
search works:</para>
          <list type=3D"bullet">
            <item>
              <term>
                <see cref=3D"F:System.Reflection.BindingFlags.DeclaredOnly"=
 /> to search only the members=20
      declared in the type, not members that were simply inherited.</term>
            </item>
            <item>
              <term>
                <see cref=3D"F:System.Reflection.BindingFlags.IgnoreCase" /=
> to ignore the case of
   <paramref name=3D"name" />.</term>
            </item>
          </list>
          <para>
            <block subset=3D"none" type=3D"note">For more information, see =
<see cref=3D"T:System.Reflection.BindingFlags" />.</block>
          </para>
          <para>This version of <see cref=3D"M:System.Type.GetMethod(System=
.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Refl=
ection.CallingConventions,System.Type[],System.Reflection.ParameterModifier=
[])" /> is equivalent to <see cref=3D"M:System.Type.GetMethod(System.String=
,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.=
CallingConventions,System.Type[],System.Reflection.ParameterModifier[])" />=
(<paramref name=3D"name" />, <paramref name=3D"bindingAttr" /> ,
<see langword=3D"null" />, <see langword=3D"null" />, <see langword=3D"null=
" />).</para>
        </remarks>
        <permission cref=3D"T:System.Security.Permissions.ReflectionPermiss=
ion">Requires permission to retrieve information on non-public members of t=
ypes in loaded assemblies. See <see cref=3D"F:System.Security.Permissions.R=
eflectionPermissionFlag.TypeInformation" />.</permission>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetMethod">
      <MemberSignature Language=3D"ILASM" Value=3D".method public final hid=
ebysig virtual class System.Reflection.MethodInfo GetMethod(string name, va=
luetype System.Reflection.BindingFlags bindingAttr, class System.Reflection=
.Binder binder, class System.Type[] types, class System.Reflection.Paramete=
rModifier[] modifiers)" />
      <MemberSignature Language=3D"C#" Value=3D"public MethodInfo GetMethod=
(string name, BindingFlags bindingAttr, Binder binder, Type[] types, Parame=
terModifier[] modifiers);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.MethodInfo</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"name" Type=3D"System.String" />
        <Parameter Name=3D"bindingAttr" Type=3D"System.Reflection.BindingFl=
ags" />
        <Parameter Name=3D"binder" Type=3D"System.Reflection.Binder" />
        <Parameter Name=3D"types" Type=3D"System.Type[]" />
        <Parameter Name=3D"modifiers" Type=3D"System.Reflection.ParameterMo=
difier[]" />
      </Parameters>
      <Docs>
        <summary>
          <para>Returns a <see cref=3D"T:System.Reflection.MethodInfo" /> o=
bject that reflects the method that matches the
   specified criteria and is defined in the type represented by the current
   instance.</para>
        </summary>
        <param name=3D"name">A <see cref=3D"T:System.String" /> containing =
the name of the method to be returned.</param>
        <param name=3D"bindingAttr">
          <para>A bitwise combination of <see cref=3D"T:System.Reflection.B=
indingFlags" /> values that control the binding process. If zero is specifi=
ed, this method returns <see langword=3D"null" /> . </para>
        </param>
        <param name=3D"binder">
          <para>A <see cref=3D"T:System.Reflection.Binder" /> object that d=
efines a set of properties and enables the binding, coercion of argument ty=
pes, and invocation of members using reflection. Specify <see langword=3D"n=
ull" /> to use the <see cref=3D"P:System.Type.DefaultBinder" /> .</para>
        </param>
        <param name=3D"types">
          <para>An array of <see cref=3D"T:System.Type" /> objects. The ele=
ments in the array are of the same number, in the same order, and represent=
 the same types as the parameters for the method to be returned.</para>
        </param>
        <param name=3D"modifiers">The only defined value for this parameter=
 is <see langword=3D"null" /> .</param>
        <returns>
          <para>A <see cref=3D"T:System.Reflection.MethodInfo" /> object th=
at reflects
   the method defined in the type represented by the current instance that
   matches the specified criteria. If no method matching the specified crit=
eria is found, returns
<see langword=3D"null" /> . If the=20
   selected method is non-public, the type reflected by
   the current instance is from a loaded assembly, and the caller
   does not have permission to reflect on non-public objects in loaded asse=
mblies,
   returns <see langword=3D"null" />.</para>
        </returns>
        <exception cref=3D"T:System.Reflection.AmbiguousMatchException">Mor=
e than one method matching the specified criteria was found.</exception>
        <exception cref=3D"T:System.ArgumentNullException">
          <para>
            <paramref name=3D"name" /> or <paramref name=3D"types" /> is <s=
ee langword=3D"null" />.</para>
          <para>-or-</para>
          <para>At least one of the elements in <paramref name=3D"types" />=
 is <see langword=3D"null" />.</para>
        </exception>
        <exception cref=3D"T:System.ArgumentException">
          <para>
            <paramref name=3D"types" /> has more than one dimension.</para>
        </exception>
        <remarks>
          <para>The following <see cref=3D"T:System.Reflection.BindingFlags=
" /> are used to define which
   members to include in the search:</para>
          <list type=3D"bullet">
            <item>
              <term>
     =20
      Specify either <see cref=3D"F:System.Reflection.BindingFlags.Instance=
" /> or <see cref=3D"F:System.Reflection.BindingFlags.Static" />
      to get a return value other than <see langword=3D"null" />.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.Public" /> to i=
nclude public members in
      the search.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.NonPublic" /> t=
o include non-public members
      (that is, private and protected members) in the search.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.FlattenHierarch=
y" /> to include
      static members declared in ancestors in the search.</term>
            </item>
          </list>
          <para>The following <see cref=3D"T:System.Reflection.BindingFlags=
" /> values can be used to change how the
search works:</para>
          <list type=3D"bullet">
            <item>
              <term>
                <see cref=3D"F:System.Reflection.BindingFlags.DeclaredOnly"=
 /> to search only the members=20
      declared in the type, not members that were simply inherited.</term>
            </item>
            <item>
              <term>
                <see cref=3D"F:System.Reflection.BindingFlags.IgnoreCase" /=
> to ignore the case of
   <paramref name=3D"name" />.</term>
            </item>
          </list>
          <para>
            <block subset=3D"none" type=3D"note">For more information, see =
<see cref=3D"T:System.Reflection.BindingFlags" />.</block>
          </para>
        </remarks>
        <permission cref=3D"T:System.Security.Permissions.ReflectionPermiss=
ion">Requires permission to retrieve information on non-public members of t=
ypes in loaded assemblies. See <see cref=3D"F:System.Security.Permissions.R=
eflectionPermissionFlag.TypeInformation" />.</permission>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"IsAssignableFrom">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 virtual bool IsAssignableFrom(class System.Type c)" />
      <MemberSignature Language=3D"C#" Value=3D"public virtual bool IsAssig=
nableFrom(Type c);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"c" Type=3D"System.Type" />
      </Parameters>
      <Docs>
        <summary>
          <para> Determines whether an instance of the current <see cref=3D=
"T:System.Type" /> can be assigned
   from an instance of the specified <see cref=3D"T:System.Type" /> .
   </para>
        </summary>
        <param name=3D"c">The <see cref=3D"T:System.Type" /> to compare wit=
h the current <see cref=3D"T:System.Type" /> . </param>
        <returns>
          <para>
            <see langword=3D"false" /> if <paramref name=3D"c" /> is a null=
 reference.</para>
          <para>
            <see langword=3D"true" /> if one or more of the following
statements are true; otherwise <see langword=3D"false" />. </para>
          <list type=3D"bullet">
            <item>
              <term>
     =20
      If <paramref name=3D"c" /> and the current <see cref=3D"T:System.Type=
" /> represent the same type.</term>
            </item>
            <item>
              <term>
     =20
      If the current <see cref=3D"T:System.Type" /> is in the inheritance h=
ierarchy of <paramref name=3D"c" />.</term>
            </item>
            <item>
              <term>
     =20
      If the current <see cref=3D"T:System.Type" /> is an interface and <pa=
ramref name=3D"c" /> supports that
      interface.</term>
            </item>
          </list>
          <see langword=3D"" />
        </returns>
        <example>
          <para>The following example demonstrates the <see cref=3D"M:Syste=
m.Type.IsAssignableFrom(System.Type)" />
method using arrays.</para>
          <code lang=3D"C#">using System;
class ArrayTypeTest {
 public static void Main() {
 int i =3D 1;
 int [] array10 =3D new int [10];
 int [] array2 =3D new int[2];
 int [,]array22 =3D new int[2,2];
 int [,]array24 =3D new int[2,4];
 int [,,]array333 =3D new int[3,3,3];
 Type array10Type =3D array10.GetType();
 Type array2Type =3D array2.GetType();
 Type array22Type =3D array22.GetType();
 Type array24Type =3D array24.GetType();
 Type array333Type =3D array333.GetType();

 // If X and Y are not both arrays, then false
 Console.WriteLine("int[2] is assignable from int? {0} ", array2Type.IsAssi=
gnableFrom(i.GetType()));
 // If X and Y have same type and rank, then true.
 Console.WriteLine("int[2] is assignable from int[10]? {0} ",  array2Type.I=
sAssignableFrom(array10Type));
 Console.WriteLine("int[2,2] is assignable from int[2,4]? {0}",  array22Typ=
e.IsAssignableFrom(array24Type));
 Console.WriteLine("int[2,4] is assignable from int[2,2]? {0}",  array24Typ=
e.IsAssignableFrom(array22Type));
 Console.WriteLine("");
 // If X and Y do not have the same rank, then false.
 Console.WriteLine("int[2,2] is assignable from int[10]? {0}",  array22Type=
.IsAssignableFrom(array10Type));
 Console.WriteLine("int[2,2] is assignable from int[3,3,3]? {0}",  array22T=
ype.IsAssignableFrom(array333Type));
 Console.WriteLine("int[3,3,3] is assignable from int[2,2]? {0}",  array333=
Type.IsAssignableFrom(array22Type));
 }
}
</code>
          <para>The output is</para>
          <c>
            <para>int[2] is assignable from int? False</para>
            <para>int[2] is assignable from int[10]? True</para>
            <para>int[2,2] is assignable from int[2,4]? True</para>
            <para>int[2,4] is assignable from int[2,2]? True</para>
            <para>int[2,2] is assignable from int[10]? False</para>
            <para>int[2,2] is assignable from int[3,3,3]? False</para>
            <para>int[3,3,3] is assignable from int[2,2]? False</para>
          </c>
        </example>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName=3D"IsInstanceOfType">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 virtual bool IsInstanceOfType(object o)" />
      <MemberSignature Language=3D"C#" Value=3D"public virtual bool IsInsta=
nceOfType(object o);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"o" Type=3D"System.Object" />
      </Parameters>
      <Docs>
        <summary>
          <para> Determines whether the specified object is an instance
      of the current <see cref=3D"T:System.Type" />.
      </para>
        </summary>
        <param name=3D"o">The object to compare with the current <see cref=
=3D"T:System.Type" />. </param>
        <returns>
          <para>
            <see langword=3D"true" /> if either of the following
   statements is true; otherwise <see langword=3D"false" />.
   </para>
          <list type=3D"bullet">
            <item>
              <term>
     =20
      If the current <see cref=3D"T:System.Type" /> is in the inheritance h=
ierarchy of <paramref name=3D"o" />.</term>
            </item>
            <item>
              <term>
     =20
      If the current <see cref=3D"T:System.Type" /> is an interface and <pa=
ramref name=3D"o" /> supports that
      interface.</term>
            </item>
          </list>
          <para>If <paramref name=3D"o" /> is a null reference, returns <se=
e langword=3D"false" />.</para>
        </returns>
        <remarks>
          <para>
            <block subset=3D"none" type=3D"behaviors">As described above.</=
block>
          </para>
        </remarks>
        <example>
          <para>The following example demonstrates the <see cref=3D"M:Syste=
m.Type.IsInstanceOfType(System.Object)" />
method.</para>
          <code lang=3D"C#">using System;
public interface IFoo { }
public class MyClass : IFoo {}
public class MyDerivedClass : MyClass {}
class IsInstanceTest {
 public static void Main() {
 Type ifooType=3Dtypeof(IFoo);
 MyClass mc =3D new MyClass();
 Type mcType =3D mc.GetType();
 MyClass mdc =3D new MyDerivedClass();
 Type mdcType =3D mdc.GetType();
 int [] array =3D new int [10];
 Type arrayType =3D typeof(Array);
 Console.WriteLine("int[] is instance of Array? {0}", arrayType.IsInstanceO=
fType(array));
 Console.WriteLine("myclass instance is instance of MyClass? {0}", mcType.I=
sInstanceOfType(mc));
 Console.WriteLine("myderivedclass instance is instance of MyClass? {0}",  =
mcType.IsInstanceOfType(mdc));
 Console.WriteLine("myclass instance is instance of IFoo? {0}", ifooType.Is=
InstanceOfType(mc));
 Console.WriteLine("myderivedclass instance is instance of IFoo? {0}",  ifo=
oType.IsInstanceOfType(mdc));
 }
}
</code>
          <para>The output is </para>
          <c>
            <para>int[] is instance of Array? True</para>
            <para>myclass instance is instance of MyClass? True</para>
            <para>myderivedclass instance is instance of MyClass? True</par=
a>
            <para>myclass instance is instance of IFoo? True</para>
            <para>myderivedclass instance is instance of IFoo? True</para>
          </c>
        </example>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName=3D"IsSubclassOf">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 virtual bool IsSubclassOf(class System.Type c)" />
      <MemberSignature Language=3D"C#" Value=3D"public virtual bool IsSubcl=
assOf(Type c);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"c" Type=3D"System.Type" />
      </Parameters>
      <Docs>
        <summary>
          <para>Determines whether the current <see cref=3D"T:System.Type" =
/> derives from the
   specified <see cref=3D"T:System.Type" /> .</para>
        </summary>
        <param name=3D"c">The <see cref=3D"T:System.Type" /> to compare wit=
h the current <see cref=3D"T:System.Type" />.</param>
        <returns>
          <para>
            <see langword=3D"true" /> if <paramref name=3D"c" /> and the cu=
rrent
<see cref=3D"T:System.Type" /> represent=20
   classes, and the class represented by the current <see cref=3D"T:System.=
Type" /> derives from the class represented by
<paramref name=3D"c" />; otherwise <see langword=3D"false" />. Returns <see=
 langword=3D"false" /> if=20
<paramref name=3D"c" /> and the current <see cref=3D"T:System.Type" /> repr=
esent the same class.</para>
        </returns>
        <example>
          <para>The following example demonstrates the <see cref=3D"M:Syste=
m.Type.IsSubclassOf(System.Type)" />
method.</para>
          <code lang=3D"C#">using System;
public interface IFoo { }
public interface IBar:IFoo{}
public class MyClass : IFoo {}
public class MyDerivedClass : MyClass {}
class IsSubclassTest {
 public static void Main() {
 Type ifooType =3D typeof(IFoo);
 Type ibarType =3D typeof(IBar);
 MyClass mc =3D new MyClass();
 Type mcType =3D mc.GetType();
 MyClass mdc =3D new MyDerivedClass();
 Type mdcType =3D mdc.GetType();
 int [] array =3D new int [10];
 Type arrayOfIntsType =3D array.GetType();
 Type arrayType =3D typeof(Array);
=20
 Console.WriteLine("Array is subclass of int[]? {0}", arrayType.IsSubclassO=
f(arrayOfIntsType));
 Console.WriteLine("int [] is subclass of Array? {0}", arrayOfIntsType.IsSu=
bclassOf(arrayType));
 Console.WriteLine("IFoo is subclass of IBar? {0}", ifooType.IsSubclassOf(i=
barType));
 Console.WriteLine("myclass is subclass of MyClass? {0}", mcType.IsSubclass=
Of(mcType));
 Console.WriteLine("myderivedclass is subclass of MyClass? {0}", mdcType.Is=
SubclassOf(mcType));
 }
}
</code>
          <para>The output is </para>
          <c>
            <para>Array is subclass of int[]? False</para>
            <para>int [] is subclass of Array? True</para>
            <para>IFoo is subclass of IBar? False</para>
            <para>myclass is subclass of MyClass? False</para>
            <para>myderivedclass is subclass of MyClass? True</para>
          </c>
        </example>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName=3D"HasElementTypeImpl">
      <MemberSignature Language=3D"ILASM" Value=3D".method family hidebysig=
 virtual abstract bool HasElementTypeImpl()" />
      <MemberSignature Language=3D"C#" Value=3D"protected abstract bool Has=
ElementTypeImpl();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>When overridden in a derived class, implements the <see cre=
f=3D"P:System.Type.HasElementType" /> property and
   determines whether the current <see cref=3D"T:System.Type" /> encompasse=
s or
   refers to another type; that is,
   whether the current <see cref=3D"T:System.Type" /> is an array, a pointe=
r, or is passed by
   reference.</para>
        </summary>
        <returns>
          <para>
            <see langword=3D"true" /> if the <see cref=3D"T:System.Type" />=
 is an array, a pointer, or is passed by reference; otherwise, <see langwor=
d=3D"false" />. </para>
        </returns>
        <remarks>
          <para>
            <block subset=3D"none" type=3D"note">For example,=20
   <see cref=3D"M:System.Type.GetType(System.String,System.Boolean,System.B=
oolean)" /> ("System.Int32[]").HasElementTypeImpl returns
   <see langword=3D"true" />, but <see cref=3D"M:System.Type.GetType(System=
.String,System.Boolean,System.Boolean)" /> ("System.Int32").HasElementTypeI=
mpl returns
   <see langword=3D"false" />. <see cref=3D"M:System.Type.HasElementTypeImp=
l" /> also returns <see langword=3D"true" /> for "System.Int32*" and "Syste=
m.Int32&amp;".</block>
          </para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetElementType">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 virtual abstract class System.Type GetElementType()" />
      <MemberSignature Language=3D"C#" Value=3D"public abstract Type GetEle=
mentType();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Type</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Returns the element type of the current <see cref=3D"T:Syst=
em.Type" />
.</para>
        </summary>
        <returns>
          <para>A <see cref=3D"T:System.Type" /> that represents=20
   the type used to create the current instance if the current
   instance represents an array, pointer, or an argument
   passed by reference. Otherwise, returns <see langword=3D"null" />
   .</para>
        </returns>
        <example>
          <para>The following example demonstrates the <see cref=3D"M:Syste=
m.Type.GetElementType" />
method.</para>
          <code lang=3D"C#">using System;
class TestType {
 public static void Main() {
 int[] array =3D {1,2,3};
 Type t =3D array.GetType();
 Type t2 =3D t.GetElementType();
 Console.WriteLine("{0} element type is {1}",array, t2.ToString());

 TestType newMe =3D new TestType();
 t =3D newMe.GetType();
 t2 =3D t.GetElementType();
 Console.WriteLine("{0} element type is {1}", newMe, t2=3D=3Dnull? "null" :=
 t2.ToString());
 }
}
</code>
          <para>The output is</para>
          <c>
            <para>System.Int32[] element type is System.Int32</para>
            <para>TestType element type is null</para>
          </c>
        </example>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName=3D"IsCOMObjectImpl">
      <MemberSignature Language=3D"ILASM" Value=3D".method family hidebysig=
 virtual abstract bool IsCOMObjectImpl()" />
      <MemberSignature Language=3D"C#" Value=3D"protected abstract bool IsC=
OMObjectImpl();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para> Reserved.</para>
        </summary>
        <returns>
          <para>
            <see langword=3D"false" />
          </para>
        </returns>
        <remarks>
          <para>This abstract method is required to be present for
      legacy implementations. Conforming implementations are permitted to t=
hrow the
   <see cref=3D"T:System.NotSupportedException" />
   as their implementation.</para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"IsPrimitiveImpl">
      <MemberSignature Language=3D"ILASM" Value=3D".method family hidebysig=
 virtual abstract bool IsPrimitiveImpl()" />
      <MemberSignature Language=3D"C#" Value=3D"protected abstract bool IsP=
rimitiveImpl();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>When overridden in a derived class, implements the <see cre=
f=3D"P:System.Type.IsPrimitive" /> property and determines whether the
<see cref=3D"T:System.Type" /> is one of the primitive types.</para>
        </summary>
        <returns>
          <para>
            <see langword=3D"true" /> if the <see cref=3D"T:System.Type" />=
 is one of the primitive types; otherwise, <see langword=3D"false" />. </pa=
ra>
        </returns>
        <remarks>
          <para>
            <block subset=3D"none" type=3D"behaviors">This method=20
      returns <see langword=3D"true" /> if the underlying type of the curre=
nt instance is
      one of the following: <see cref=3D"T:System.Boolean" />, <see cref=3D=
"T:System.Byte" />, <see cref=3D"T:System.SByte" />, <see cref=3D"T:System.=
Int16" />, <see cref=3D"T:System.UInt16" />, <see cref=3D"T:System.Int32" /=
>, <see cref=3D"T:System.UInt32" />, <see cref=3D"T:System.Int64" />, <see =
cref=3D"T:System.UInt64" />, <see cref=3D"T:System.Char" />, <see cref=3D"T=
:System.Double" />, and <see cref=3D"T:System.Single" />.</block>
          </para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"IsPointerImpl">
      <MemberSignature Language=3D"ILASM" Value=3D".method family hidebysig=
 virtual abstract bool IsPointerImpl()" />
      <MemberSignature Language=3D"C#" Value=3D"protected abstract bool IsP=
ointerImpl();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>When overridden in a derived class, implements the <see cre=
f=3D"P:System.Type.IsPointer" /> property and determines whether the
<see cref=3D"T:System.Type" /> is a pointer.</para>
        </summary>
        <returns>
          <para>
            <see langword=3D"true" /> if the <see cref=3D"T:System.Type" />=
 is a pointer; otherwise, <see langword=3D"false" />. </para>
        </returns>
        <remarks>
          <para>
            <block subset=3D"none" type=3D"behaviors">As described above.</=
block>
          </para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"IsByRefImpl">
      <MemberSignature Language=3D"ILASM" Value=3D".method family hidebysig=
 virtual abstract bool IsByRefImpl()" />
      <MemberSignature Language=3D"C#" Value=3D"protected abstract bool IsB=
yRefImpl();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>When overridden in a derived class, implements the <see cre=
f=3D"P:System.Type.IsByRef" />
property and determines whether the <see cref=3D"T:System.Type" /> is passe=
d by reference.</para>
        </summary>
        <returns>
          <para>
            <see langword=3D"true" /> if the <see cref=3D"T:System.Type" />=
 is passed by reference; otherwise, <see langword=3D"false" />. </para>
        </returns>
        <remarks>
          <para>
            <block subset=3D"none" type=3D"behaviors">As described above.</=
block>
          </para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"IsArrayImpl">
      <MemberSignature Language=3D"ILASM" Value=3D".method family hidebysig=
 virtual abstract bool IsArrayImpl()" />
      <MemberSignature Language=3D"C#" Value=3D"protected abstract bool IsA=
rrayImpl();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>When overridden in a derived class implements the <see cref=
=3D"P:System.Type.IsArray" /> property returning a
<see cref=3D"T:System.Boolean" /> value that indicates whether
   the type represented by the current instance is an array.</para>
        </summary>
        <returns>
          <para>
            <see langword=3D"true" /> if the <see cref=3D"T:System.Type" />=
 is an array; otherwise, <see langword=3D"false" />. </para>
        </returns>
        <remarks>
          <para>An instance of the <see cref=3D"T:System.Array" /> class is=
 required to return <see langword=3D"false" /> because it is an object, not=
 an
   array.<block subset=3D"none" type=3D"behaviors">As described above.</blo=
ck></para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetAttributeFlagsImpl">
      <MemberSignature Language=3D"ILASM" Value=3D".method family hidebysig=
 virtual abstract valuetype System.Reflection.TypeAttributes GetAttributeFl=
agsImpl()" />
      <MemberSignature Language=3D"C#" Value=3D"protected abstract TypeAttr=
ibutes GetAttributeFlagsImpl();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.TypeAttributes</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>When overridden in a derived type implements the <see cref=
=3D"P:System.Type.Attributes" />
property and returns the attributes specified for the type represented by t=
he current instance.</para>
        </summary>
        <returns>
          <para>A <see cref=3D"T:System.Reflection.TypeAttributes" /> value=
 that signifies the attributes of the
   type represented by the current instance.</para>
        </returns>
        <remarks>
          <block subset=3D"none" type=3D"behaviors">
            <para>This property is read-only.</para>
            <para>This method returns a <see cref=3D"T:System.Reflection.Ty=
peAttributes" /> value that indicates the attributes set in
      the metadata of the type represented by the current
      instance.</para>
          </block>
          <para>
            <block subset=3D"none" type=3D"usage">Use this property to dete=
rmine the
   visibility, semantics, and layout format of the type represented by the
   current. Also use this property to determine if the type represented by
   the current instance has a special name.</block>
          </para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetDefaultMembers">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 virtual class System.Reflection.MemberInfo[] GetDefaultMembers()" />
      <MemberSignature Language=3D"C#" Value=3D"public virtual MemberInfo[]=
 GetDefaultMembers();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.MemberInfo[]</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Returns an array of <see cref=3D"T:System.Reflection.Member=
Info" /> objects that reflect the default members
   defined in the type represented by the current instance.</para>
        </summary>
        <returns>
          <para>An array of <see cref=3D"T:System.Reflection.MemberInfo" />=
 objects reflecting the default members of the
   type represented by the current instance. If the type represented by the=
 current
   instance does not have any default members, returns an empty array.</par=
a>
        </returns>
        <remarks>
          <para>
            <block subset=3D"none" type=3D"behaviors">The members returned
      by this method have the <see cref=3D"T:System.Reflection.DefaultMembe=
rAttribute" />
      attribute.</block>
          </para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetNestedType">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 virtual abstract class System.Type GetNestedType(string name, valuetype Sy=
stem.Reflection.BindingFlags bindingAttr)" />
      <MemberSignature Language=3D"C#" Value=3D"public abstract Type GetNes=
tedType(string name, BindingFlags bindingAttr);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Type</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"name" Type=3D"System.String" />
        <Parameter Name=3D"bindingAttr" Type=3D"System.Reflection.BindingFl=
ags" />
      </Parameters>
      <Docs>
        <summary>
          <para> Returns a nested types defined in the type represented by =
the current instance that match the specified binding constraints.</para>
        </summary>
        <param name=3D"name">A <see cref=3D"T:System.String" /> containing =
the name of the nested type to return. Specify the unqualified name of the =
nested type. <block subset=3D"none" type=3D"note">For example, for a type B=
 nested within A, if typeA represents the type object for A, the correct in=
vocation is typeA.GetNestedType("B").</block></param>
        <param name=3D"bindingAttr">
          <para>A bitwise combination of <see cref=3D"T:System.Reflection.B=
indingFlags" /> values that control the binding process. If zero is specifi=
ed, this method returns <see langword=3D"null" /> . </para>
        </param>
        <returns>
          <para>A <see cref=3D"T:System.Type" /> object representing the ne=
sted type that
   matches the specified criteria, if found; otherwise, <see langword=3D"nu=
ll" />. If the selected nested
   type is non-public, the current instance represents a type contained in =
a loaded
   assembly and the caller does not have sufficient permissions, returns
<see langword=3D"null" />=20
.</para>
        </returns>
        <exception cref=3D"T:System.ArgumentNullException">
          <paramref name=3D"name" /> is <see langword=3D"null" />. </except=
ion>
        <remarks>
          <para>The following <see cref=3D"T:System.Reflection.BindingFlags=
" /> are used to define which
   members to include in the search:</para>
          <list type=3D"bullet">
            <item>
              <term>
     =20
      Specify either <see cref=3D"F:System.Reflection.BindingFlags.Instance=
" /> or <see cref=3D"F:System.Reflection.BindingFlags.Static" />
      to get a return value other than <see langword=3D"null" />.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.Public" /> to i=
nclude public members in
      the search.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.NonPublic" /> t=
o include non-public members
      (that is, private and protected members) in the search.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.FlattenHierarch=
y" /> to include
      static members declared in ancestors in the search.</term>
            </item>
          </list>
          <para>The following <see cref=3D"T:System.Reflection.BindingFlags=
" /> values can be used to change how the
search works:</para>
          <list type=3D"bullet">
            <item>
              <term>
                <see cref=3D"F:System.Reflection.BindingFlags.DeclaredOnly"=
 /> to search only the members=20
      declared in the type, not members that were simply inherited.</term>
            </item>
            <item>
              <term>
                <see cref=3D"F:System.Reflection.BindingFlags.IgnoreCase" /=
> to ignore the case of
   <paramref name=3D"name" />.</term>
            </item>
          </list>
          <para>
            <block subset=3D"none" type=3D"note">For more information, see =
<see cref=3D"T:System.Reflection.BindingFlags" />.</block>
          </para>
        </remarks>
        <permission cref=3D"T:System.Security.Permissions.ReflectionPermiss=
ion">Requires permission to retrieve information on non-public members of t=
ypes in loaded assemblies. See <see cref=3D"F:System.Security.Permissions.R=
eflectionPermissionFlag.TypeInformation" />.</permission>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetNestedTypes">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 virtual abstract class System.Type[] GetNestedTypes(valuetype System.Refle=
ction.BindingFlags bindingAttr)" />
      <MemberSignature Language=3D"C#" Value=3D"public abstract Type[] GetN=
estedTypes(BindingFlags bindingAttr);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Type[]</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"bindingAttr" Type=3D"System.Reflection.BindingFl=
ags" />
      </Parameters>
      <Docs>
        <summary>
          <para> Returns an array containing the nested types defined in
      the type represented by the current instance that match the specified=
 binding constraints.</para>
        </summary>
        <param name=3D"bindingAttr">
          <para>A bitwise combination of <see cref=3D"T:System.Reflection.B=
indingFlags" /> values that control the binding process. If zero is specifi=
ed, this method returns <see langword=3D"null" /> . </para>
        </param>
        <returns>
          <para>An array of <see cref=3D"T:System.Type" /> objects represen=
ting all types nested within the type
   represented by the current instance that match the specified binding con=
straints,
   if any. Otherwise, returns an empty <see cref=3D"T:System.Type" /> array=
. If the type reflected by the current instance is
   contained in a loaded assembly, the type that matches the specified crit=
eria is
   not public, and the caller does not have sufficient permission, returns =
only
   public types.</para>
        </returns>
        <remarks>
          <para>The following <see cref=3D"T:System.Reflection.BindingFlags=
" /> are used to define which
   members to include in the search:</para>
          <list type=3D"bullet">
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.Public" /> to i=
nclude public members in
      the search.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.NonPublic" /> t=
o include non-public members
      (that is, private and protected members) in the search.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.FlattenHierarch=
y" /> to include
      static members declared in ancestors in the search.</term>
            </item>
          </list>
          <para>The following <see cref=3D"T:System.Reflection.BindingFlags=
" /> values can be used to change how the
search works:</para>
          <list type=3D"bullet">
            <item>
              <term>
                <see cref=3D"F:System.Reflection.BindingFlags.DeclaredOnly"=
 /> to search only the members
      declared in the type, not members that were simply inherited.</term>
            </item>
          </list>
          <para>
            <block subset=3D"none" type=3D"note">For more information, see =
<see cref=3D"T:System.Reflection.BindingFlags" />.</block>
          </para>
        </remarks>
        <permission cref=3D"T:System.Security.Permissions.ReflectionPermiss=
ion">Requires permission to retrieve information on non-public members of t=
ypes in loaded assemblies. See <see cref=3D"F:System.Security.Permissions.R=
eflectionPermissionFlag.TypeInformation" />.</permission>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetPropertyImpl">
      <MemberSignature Language=3D"ILASM" Value=3D".method family hidebysig=
 virtual abstract class System.Reflection.PropertyInfo GetPropertyImpl(stri=
ng name, valuetype System.Reflection.BindingFlags bindingAttr, class System=
.Reflection.Binder binder, class System.Type returnType, class System.Type[=
] types, class System.Reflection.ParameterModifier[] modifiers)" />
      <MemberSignature Language=3D"C#" Value=3D"protected abstract Property=
Info GetPropertyImpl(string name, BindingFlags bindingAttr, Binder binder, =
Type returnType, Type[] types, ParameterModifier[] modifiers);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.PropertyInfo</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"name" Type=3D"System.String" />
        <Parameter Name=3D"bindingAttr" Type=3D"System.Reflection.BindingFl=
ags" />
        <Parameter Name=3D"binder" Type=3D"System.Reflection.Binder" />
        <Parameter Name=3D"returnType" Type=3D"System.Type" />
        <Parameter Name=3D"types" Type=3D"System.Type[]" />
        <Parameter Name=3D"modifiers" Type=3D"System.Reflection.ParameterMo=
difier[]" />
      </Parameters>
      <Docs>
        <summary>
          <para>When overridden in a derived class implements the=20
   <see cref=3D"M:System.Type.GetProperty(System.String,System.Reflection.B=
indingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Refle=
ction.ParameterModifier[])" />=20
   method and returns a <see cref=3D"T:System.Reflection.PropertyInfo" /> o=
bject that reflects the property defined
   in the type represented by the current instance that matches the specifi=
ed search
   criteria.</para>
        </summary>
        <param name=3D"name">A <see cref=3D"T:System.String" /> containing =
the name of the property to be returned.</param>
        <param name=3D"bindingAttr">
          <para>A bitwise combination of <see cref=3D"T:System.Reflection.B=
indingFlags" /> values that control the binding process. If zero is specifi=
ed, this method returns <see langword=3D"null" /> . </para>
        </param>
        <param name=3D"binder">
          <para>A <see cref=3D"T:System.Reflection.Binder" /> object that d=
efines a set of properties and enables the binding, coercion of argument ty=
pes, and invocation of members using reflection. Specify <see langword=3D"n=
ull" /> to use the <see cref=3D"P:System.Type.DefaultBinder" /> .</para>
        </param>
        <param name=3D" returnType">A <see cref=3D"T:System.Type" /> object=
 that represents the type of the property to be returned.</param>
        <param name=3D"types">
          <para>An array of <see cref=3D"T:System.Type" /> objects. The ele=
ments in the array are of the same number, in the same order, and represent=
 the same types as the parameters for the indexer to be returned. Specify <=
see cref=3D"F:System.Type.EmptyTypes" /> to obtain a property that is not i=
ndexed.</para>
        </param>
        <param name=3D"modifiers">The only defined value for this parameter=
 is <see langword=3D"null" /> .</param>
        <returns>
          <para>A <see cref=3D"T:System.Reflection.PropertyInfo" /> object =
representing the property that matches the
   specified search criteria, if found; otherwise, <see langword=3D"null" /=
>. If the type reflected by the current
   instance is from a loaded assembly, the matching property is not
   public, and the caller does not have permission to reflect on non-public
   objects in loaded assemblies, returns <see langword=3D"null" />.</para>
        </returns>
        <exception cref=3D"T:System.Reflection.AmbiguousMatchException">Mor=
e than one property matching the specified criteria was found.</exception>
        <exception cref=3D"T:System.ArgumentNullException">
          <para>
            <paramref name=3D"name" /> or <paramref name=3D"types" /> is <s=
ee langword=3D"null" />, or at least one of the elements in <paramref name=
=3D"types" /> is <see langword=3D"null" />.</para>
        </exception>
        <exception cref=3D"T:System.ArgumentException">
          <para>
            <paramref name=3D"types" /> has more than one dimension.</para>
        </exception>
        <remarks>
          <para>The following <see cref=3D"T:System.Reflection.BindingFlags=
" /> are used to define which
   members to include in the search:</para>
          <list type=3D"bullet">
            <item>
              <term>
     =20
      Specify either <see cref=3D"F:System.Reflection.BindingFlags.Instance=
" /> or <see cref=3D"F:System.Reflection.BindingFlags.Static" />
      to get a return value other than <see langword=3D"null" />.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.Public" /> to i=
nclude public members in
      the search.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.NonPublic" /> t=
o include non-public members
      (that is, private and protected members) in the search.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.FlattenHierarch=
y" /> to include
      static members declared in ancestors in the search.</term>
            </item>
          </list>
          <para>The following <see cref=3D"T:System.Reflection.BindingFlags=
" /> values can be used to change how the
search works:</para>
          <list type=3D"bullet">
            <item>
              <term>
                <see cref=3D"F:System.Reflection.BindingFlags.DeclaredOnly"=
 /> to search only the members=20
      declared in the type, not members that were simply inherited.</term>
            </item>
            <item>
              <term>
                <see cref=3D"F:System.Reflection.BindingFlags.IgnoreCase" /=
> to ignore the case of
   <paramref name=3D"name" />.</term>
            </item>
          </list>
          <para>
            <block subset=3D"none" type=3D"note">For more information, see =
<see cref=3D"T:System.Reflection.BindingFlags" />.</block>
          </para>
          <para>
            <block subset=3D"none" type=3D"behaviors"> Different
   programming languages use different syntax to specify indexed properties=
.
   Internally, this property is referred to by the name "Item" in the metad=
ata.
   Therefore, any attempt to retrieve an indexed property using reflection =
is required to
   specify this internal name in order for the <see langword=3D"PropertyInf=
o" /> to be returned correctly.
</block>
          </para>
        </remarks>
        <permission cref=3D"T:System.Security.Permissions.ReflectionPermiss=
ion">Requires permission to retrieve information on non-public members of t=
ypes in loaded assemblies. See <see cref=3D"F:System.Security.Permissions.R=
eflectionPermissionFlag.TypeInformation" />.</permission>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetEvents">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 virtual abstract class System.Reflection.EventInfo[] GetEvents(valuetype S=
ystem.Reflection.BindingFlags bindingAttr)" />
      <MemberSignature Language=3D"C#" Value=3D"public abstract EventInfo[]=
 GetEvents(BindingFlags bindingAttr);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.EventInfo[]</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"bindingAttr" Type=3D"System.Reflection.BindingFl=
ags" />
      </Parameters>
      <Docs>
        <summary>
          <para>Returns an array of <see cref=3D"T:System.Reflection.EventI=
nfo" /> objects that reflect the events that are
   defined in the type represented by the current instance and match the sp=
ecified
   binding constraints.</para>
        </summary>
        <param name=3D"bindingAttr">
          <para>A bitwise combination of <see cref=3D"T:System.Reflection.B=
indingFlags" /> values that control the binding process. If zero is specifi=
ed, this method returns null. </para>
        </param>
        <returns>
          <para>An array of <see cref=3D"T:System.Reflection.EventInfo" /> =
objects that reflect the events that are
   defined in the type represented by the current instance and match the
   constraints of <paramref name=3D"bindingAttr" /> . If no events match
   these constraints, returns an empty array. If the type reflected by the =
current
   instance is from a loaded assembly and the caller does not have permissi=
on to
   reflect on non-public objects in loaded assemblies, returns only public
   events.</para>
        </returns>
        <remarks>
          <para>The following <see cref=3D"T:System.Reflection.BindingFlags=
" /> are used to define which
   events to include in the search:</para>
          <list type=3D"bullet">
            <item>
              <term>
     =20
      Specify either <see cref=3D"F:System.Reflection.BindingFlags.Instance=
" /> or <see cref=3D"F:System.Reflection.BindingFlags.Static" />
      to get a return value other than <see langword=3D"null" />.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.Public" /> to i=
nclude public events in
      the search.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.NonPublic" /> t=
o include non-public
      events (that is, private and protected events) in the
      search.</term>
            </item>
          </list>
          <para>
            <block subset=3D"none" type=3D"note">For more information, see =
<see cref=3D"T:System.Reflection.BindingFlags" />.</block>
          </para>
          <para>
            <block subset=3D"none" type=3D"behaviors">As described above.</=
block>
          </para>
        </remarks>
        <permission cref=3D"T:System.Security.Permissions.ReflectionPermiss=
ion">Requires permission to retrieve information on non-public members of t=
ypes in loaded assemblies. See <see cref=3D"F:System.Security.Permissions.R=
eflectionPermissionFlag.TypeInformation" />.</permission>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetEvents">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 virtual class System.Reflection.EventInfo[] GetEvents()" />
      <MemberSignature Language=3D"C#" Value=3D"public virtual EventInfo[] =
GetEvents();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.EventInfo[]</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Returns an array of <see cref=3D"T:System.Reflection.EventI=
nfo" /> objects that reflect the public events
   defined in the type represented by the current instance.</para>
        </summary>
        <returns>
          <para>An array of <see cref=3D"T:System.Reflection.EventInfo" /> =
objects that reflect the public events
   defined in the type represented by the current instance. If no public ev=
ents
   are defined in the type represented by the current instance, returns an =
empty
   array.</para>
        </returns>
        <remarks>
          <para>
            <block subset=3D"none" type=3D"behaviors">As described above.</=
block>
          </para>
          <para>
            <block subset=3D"none" type=3D"default">This version of <see cr=
ef=3D"M:System.Type.GetEvents" /> is
   equivalent to <see cref=3D"M:System.Type.GetEvents" />(<see cref=3D"F:Sy=
stem.Reflection.BindingFlags.Public" /> | <see cref=3D"F:System.Reflection.=
BindingFlags.Static" /> | <see cref=3D"F:System.Reflection.BindingFlags.Ins=
tance" />).</block>
          </para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetEvent">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 virtual abstract class System.Reflection.EventInfo GetEvent(string name, v=
aluetype System.Reflection.BindingFlags bindingAttr)" />
      <MemberSignature Language=3D"C#" Value=3D"public abstract EventInfo G=
etEvent(string name, BindingFlags bindingAttr);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.EventInfo</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"name" Type=3D"System.String" />
        <Parameter Name=3D"bindingAttr" Type=3D"System.Reflection.BindingFl=
ags" />
      </Parameters>
      <Docs>
        <summary>
          <para>Returns a <see cref=3D"T:System.Reflection.EventInfo" /> ob=
ject reflecting the event that has the
   specified name, is defined in the type represented by the current instan=
ce, and
   matches the specified binding constraints.</para>
        </summary>
        <param name=3D"name">A <see cref=3D"T:System.String" /> containing =
the name of the event to be returned.</param>
        <param name=3D"bindingAttr">
          <para>A bitwise combination of <see cref=3D"T:System.Reflection.B=
indingFlags" /> values that control the binding process. If zero is specifi=
ed, this method returns null. </para>
        </param>
        <returns>
          <para>A <see cref=3D"T:System.Reflection.EventInfo" /> object ref=
lecting the event that is named
<paramref name=3D"name" />, is defined in the type represented by the curre=
nt instance, and=20
   matches the constraints of <paramref name=3D"bindingAttr" />. If an even=
t
   matching these criteria is not found, returns <see langword=3D"null" />.=
 If the event is not
   public, the current instance represents
   a type from a loaded assembly, and the caller does not have sufficient
   permission, returns <see langword=3D"null" />.</para>
        </returns>
        <exception cref=3D"T:System.ArgumentNullException">
          <paramref name=3D"name" /> is <see langword=3D"null" />. </except=
ion>
        <remarks>
          <para>The following <see cref=3D"T:System.Reflection.BindingFlags=
" /> are used to define which
   events to include in the search:</para>
          <list type=3D"bullet">
            <item>
              <term>
     =20
      Specify either <see cref=3D"F:System.Reflection.BindingFlags.Instance=
" /> or <see cref=3D"F:System.Reflection.BindingFlags.Static" />
      to get a return value other than <see langword=3D"null" />.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.Public" /> to i=
nclude public events in
      the search.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.NonPublic" /> t=
o include non-public
      events(that is, private and protected events) in the search.</term>
            </item>
            <item>
              <term>
      Specify <see cref=3D"F:System.Reflection.BindingFlags.FlattenHierarch=
y" /> to include to include
      static members declared in ancestors in the search.</term>
            </item>
          </list>
          <para>The following <see cref=3D"T:System.Reflection.BindingFlags=
" /> value can be used to change how the
search works:</para>
          <list type=3D"bullet">
            <item>
              <term>
                <see cref=3D"F:System.Reflection.BindingFlags.DeclaredOnly"=
 /> to search only the events
      declared on the type, not events that were simply inherited.</term>
            </item>
          </list>
          <para>
            <block subset=3D"none" type=3D"note">For more information, see =
<see cref=3D"T:System.Reflection.BindingFlags" />.</block>
          </para>
          <para>
            <block subset=3D"none" type=3D"behaviors">As described above.</=
block>
          </para>
        </remarks>
        <permission cref=3D"T:System.Security.Permissions.ReflectionPermiss=
ion">Requires permission to retrieve information on non-public members of t=
ypes in loaded assemblies. See <see cref=3D"F:System.Security.Permissions.R=
eflectionPermissionFlag.TypeInformation" />.</permission>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetInterfaces">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 virtual abstract class System.Type[] GetInterfaces()" />
      <MemberSignature Language=3D"C#" Value=3D"public abstract Type[] GetI=
nterfaces();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Type[]</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Returns all interfaces implemented or inherited by the
      type represented by the current instance.</para>
        </summary>
        <returns>
          <para>An array of <see cref=3D"T:System.Type" /> objects represen=
ting the interfaces implemented or
   inherited by the type represented by the current instance. If no interfa=
ces are
   found, returns an empty <see cref=3D"T:System.Type" /> array.</para>
        </returns>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetInterface">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 virtual abstract class System.Type GetInterface(string name, bool ignoreCa=
se)" />
      <MemberSignature Language=3D"C#" Value=3D"public abstract Type GetInt=
erface(string name, bool ignoreCase);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Type</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"name" Type=3D"System.String" />
        <Parameter Name=3D"ignoreCase" Type=3D"System.Boolean" />
      </Parameters>
      <Docs>
        <summary>
          <para> Returns the specified interface,
      specifying whether to do a case-sensitive search.</para>
        </summary>
        <param name=3D"name">A <see cref=3D"T:System.String" /> containing =
the name of the interface to return.</param>
        <param name=3D"ignoreCase">
          <para> A <see cref=3D"T:System.Boolean" /> where<see langword=3D"=
 true" /> indicates that the name search is to be done case-insensitively, =
and <see langword=3D"false" /> performs a case-sensitive search.</para>
        </param>
        <returns>
          <para>A <see cref=3D"T:System.Type" /> object representing
   the interface with the specified name, implemented or inherited by the t=
ype
   represented by the instance, if found; otherwise, <see langword=3D"null"=
 />.</para>
        </returns>
        <exception cref=3D"T:System.ArgumentNullException">
          <paramref name=3D"name" /> is <see langword=3D"null" />. </except=
ion>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetConstructors">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 virtual abstract class System.Reflection.ConstructorInfo[] GetConstructors=
(valuetype System.Reflection.BindingFlags bindingAttr)" />
      <MemberSignature Language=3D"C#" Value=3D"public abstract Constructor=
Info[] GetConstructors(BindingFlags bindingAttr);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.ConstructorInfo[]</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"bindingAttr" Type=3D"System.Reflection.BindingFl=
ags" />
      </Parameters>
      <Docs>
        <summary>
          <para>Returns an array of constructors defined in the type repres=
ented by the
      current instance, under the specified binding constraints.</para>
        </summary>
        <param name=3D"bindingAttr">
          <para>A bitwise combination of <see cref=3D"T:System.Reflection.B=
indingFlags" /> values that control the binding process. If zero is specifi=
ed, this method returns <see langword=3D"null" /> . </para>
        </param>
        <returns>
          <para>An array of <see cref=3D"T:System.Reflection.ConstructorInf=
o" /> objects that reflect the constructors that
   are defined in the type represented by the current instance and match th=
e
   constraints of <paramref name=3D"bindingAttr" />. If <see cref=3D"F:Syst=
em.Reflection.BindingFlags.NonPublic" /> and <see cref=3D"F:System.Reflecti=
on.BindingFlags.Static" /> are specified, this array
   includes the type initializer if it is defined. If no constructors meeti=
ng the
   constraints of <paramref name=3D"bindingAttr" /> are defined in the type=
 represented by the
   current instance, returns an empty array. If the type represented by the=
 current
   instance is contained in a loaded assembly, the constructors that match =
the
   specified criteria are not public, and the caller does not have sufficie=
nt
   permission, returns <see langword=3D"null" /> .</para>
        </returns>
        <remarks>
          <para>The following <see cref=3D"T:System.Reflection.BindingFlags=
" /> are used to define which
   constructors to include in the search:</para>
          <list type=3D"bullet">
            <item>
              <term>
     =20
      Specify either <see cref=3D"F:System.Reflection.BindingFlags.Instance=
" /> or <see cref=3D"F:System.Reflection.BindingFlags.Static" />
      to get a return value other than <see langword=3D"null" />.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.Public" /> to i=
nclude public constructors
      in the search.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.NonPublic" /> t=
o include non-public
      constructors (that is, private and protected constructors) in the
      search.</term>
            </item>
          </list>
          <para>
            <block subset=3D"none" type=3D"note">For more information, see =
<see cref=3D"T:System.Reflection.BindingFlags" />.</block>
          </para>
          <para>
            <block subset=3D"none" type=3D"behaviors">As described above.</=
block>
          </para>
        </remarks>
        <permission cref=3D"T:System.Security.Permissions.ReflectionPermiss=
ion">Requires permission to retrieve information on non-public members of t=
ypes in loaded assemblies. See <see cref=3D"F:System.Security.Permissions.R=
eflectionPermissionFlag.TypeInformation" />.</permission>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetArrayRank">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 virtual int32 GetArrayRank()" />
      <MemberSignature Language=3D"C#" Value=3D"public virtual int GetArray=
Rank();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para> Returns the number of dimensions in the current <see cref=
=3D"T:System.Type" />.</para>
        </summary>
        <returns>
          <para>A <see cref=3D"T:System.Int32" /> containing the number of =
dimensions in the  current
<see cref=3D"T:System.Type" />.</para>
        </returns>
        <exception cref=3D"T:System.ArgumentException">The current <see cre=
f=3D"T:System.Type" /> is  not an array.</exception>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName=3D"GetHashCode">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 virtual int32 GetHashCode()" />
      <MemberSignature Language=3D"C#" Value=3D"public override int GetHash=
Code();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Generates a hash code for the current instance.</para>
        </summary>
        <returns>
          <para>A <see cref=3D"T:System.Int32" />
containing the hash code for this instance.</para>
        </returns>
        <remarks>
          <para>The algorithm used to
      generate the hash code is unspecified.</para>
          <para>
            <block subset=3D"none" type=3D"note">This method
      overrides <see cref=3D"M:System.Object.GetHashCode" />
      .</block>
          </para>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName=3D"ToString">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 virtual string ToString()" />
      <MemberSignature Language=3D"C#" Value=3D"public override string ToSt=
ring();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para> Returns a <see cref=3D"T:System.String" /> representation =
of the current <see cref=3D"T:System.Type" />.
   </para>
        </summary>
        <returns>
          <para>Returns <see cref=3D"P:System.Type.FullName" /> .</para>
        </returns>
        <remarks>
          <para>
            <block subset=3D"none" type=3D"note">This method
      overrides <see cref=3D"M:System.Object.ToString" />
      .</block>
          </para>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName=3D"GetType">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 static class System.Type GetType(string typeName, bool throwOnError, bool =
ignoreCase)" />
      <MemberSignature Language=3D"C#" Value=3D"public static Type GetType(=
string typeName, bool throwOnError, bool ignoreCase);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Type</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"typeName" Type=3D"System.String" />
        <Parameter Name=3D"throwOnError" Type=3D"System.Boolean" />
        <Parameter Name=3D"ignoreCase" Type=3D"System.Boolean" />
      </Parameters>
      <Docs>
        <summary>
          <para>Returns the <see cref=3D"T:System.Type" />
with the specified name, optionally performing a case-sensitive search
and throwing an exception if an error occurs while loading the <see cref=3D=
"T:System.Type" />.</para>
        </summary>
        <param name=3D"typeName">A <see cref=3D"T:System.String" /> contain=
ing the name of the <see cref=3D"T:System.Type" /> to return.</param>
        <param name=3D"throwOnError">
          <para> A <see cref=3D"T:System.Boolean" />. Specify <see langword=
=3D"true" /> to throw a <see cref=3D"T:System.TypeLoadException" /> if an e=
rror occurs while loading the <see cref=3D"T:System.Type" />. Specify <see =
langword=3D"false" /> to ignore errors while loading the <see cref=3D"T:Sys=
tem.Type" />.</para>
        </param>
        <param name=3D"ignoreCase">
          <para> A <see cref=3D"T:System.Boolean" />. Specify<see langword=
=3D" true" /> to perform a case-insensitive search for <paramref name=3D"ty=
peName." /> Specify <see langword=3D"false" /> to perform a case-sensitive =
search for <paramref name=3D"typeName" /> .</para>
        </param>
        <returns>
          <para>The <see cref=3D"T:System.Type" /> with the specified name,=
 if found; otherwise, <see langword=3D"null" />. If the
   requested type is non-public and the caller does not have permission to =
reflect non-public objects
   outside the current assembly, this method returns <see langword=3D"null"=
 />.</para>
        </returns>
        <exception cref=3D"T:System.ArgumentNullException">
          <paramref name=3D"typeName" /> is <see langword=3D"null" />.</exc=
eption>
        <exception cref=3D"T:System.Reflection.TargetInvocationException">A=
 type initializer was invoked and threw an exception.</exception>
        <exception cref=3D"T:System.TypeLoadException">
          <paramref name=3D"throwOnError" /> is <see langword=3D"true" /> a=
nd an error was encountered while loading the selected <see cref=3D"T:Syste=
m.Type" />.</exception>
        <remarks>
          <para>
            <paramref name=3D"typeName" /> can be a simple
   type name, a fully qualified name, or a complex name that includes an as=
sembly
   name. <block subset=3D"none" type=3D"note"><see cref=3D"P:System.Type.As=
semblyQualifiedName" />
   returns a fully qualified type name including nested types
   and the assembly name. </block></para>
          <para>If <paramref name=3D"typeName" /> includes only the name of=
 the <see cref=3D"T:System.Type" />, this method searches in the
calling object's assembly, then in the mscorlib.dll assembly. If
<paramref name=3D"typeName" />=20
is fully qualified with the partial or complete assembly name, this
method searches in the specified assembly.</para>
          <block subset=3D"none" type=3D"note">
            <para>
              <see langword=3D"" />
            </para>
            <para> The following table shows calls to
<see langword=3D"GetType" /> for various types.</para>
            <list type=3D"table">
              <listheader>
                <term>To Get</term>
                <description>Use</description>
              </listheader>
              <item>
                <term> An
         unmanaged pointer to <see langword=3D"MyType" /></term>
                <description>
                  <c>Type.GetType("MyType*")</c>
                </description>
              </item>
              <item>
                <term> An
         unmanaged pointer to a pointer to <see langword=3D"MyType" /></ter=
m>
                <description>
                  <c>Type.GetType("MyType**")</c>
                </description>
              </item>
              <item>
                <term> A
         managed pointer
         or
         reference to <see langword=3D"MyType" /></term>
                <description>
                  <c>Type.GetType("MyType&amp;")</c>. Note that unlike poin=
ters, references are
      limited to one level.</description>
              </item>
              <item>
                <term> A parent class and a nested class</term>
                <description>
                  <c>Type.GetType("MyParentClass+MyNestedClass")</c>
                </description>
              </item>
              <item>
                <term> A one-dimensional array with a lower bound of 0</ter=
m>
                <description>
                  <c>Type.GetType("MyArray[]")</c>
                </description>
              </item>
              <item>
                <term> A one-dimensional array with an unknown lower bound<=
/term>
                <description>
                  <c>Type.GetType("MyArray[*]")</c>
                </description>
              </item>
              <item>
                <term> An n-dimensional array</term>
                <description>A comma (,) inside the brackets a total of n-1
      times. For example, <c>System.Object[,,]</c> represents a three-dimen=
sional
<see langword=3D"Object" />=20
array.</description>
              </item>
              <item>
                <term> A
      two-dimensional array's array</term>
                <description>
                  <c>Type.GetType("MyArray[][]")</c>
                </description>
              </item>
              <item>
                <term> A rectangular two-dimensional array with unknown low=
er bounds</term>
                <description>
                  <c>Type.GetType("MyArray[*,*]")</c>or <c>Type.GetType("My=
Array[,]")</c></description>
              </item>
            </list>
          </block>
        </remarks>
        <permission cref=3D"T:System.Security.Permissions.ReflectionPermiss=
ion">Requires permission to retrieve information on non-public members of t=
ypes in loaded assemblies. See <see cref=3D"F:System.Security.Permissions.R=
eflectionPermissionFlag.TypeInformation" />.</permission>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetType">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 static class System.Type GetType(string typeName, bool throwOnError)" />
      <MemberSignature Language=3D"C#" Value=3D"public static Type GetType(=
string typeName, bool throwOnError);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Type</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"typeName" Type=3D"System.String" />
        <Parameter Name=3D"throwOnError" Type=3D"System.Boolean" />
      </Parameters>
      <Docs>
        <summary>
          <para>Returns the <see cref=3D"T:System.Type" /> with the specifi=
ed name, optionally throwing an
   exception if an error occurs while loading the <see cref=3D"T:System.Typ=
e" /> .</para>
        </summary>
        <param name=3D"typeName">A <see cref=3D"T:System.String" /> contain=
ing the case-sensitive name of the <see cref=3D"T:System.Type" /> to return=
.</param>
        <param name=3D"throwOnError">
          <para>A <see cref=3D"T:System.Boolean" />. Specify <see langword=
=3D"true" /> to throw a <see cref=3D"T:System.TypeLoadException" /> if an e=
rror occurs while loading the <see cref=3D"T:System.Type" />. Specify <see =
langword=3D"false" /> to ignore errors while loading the <see cref=3D"T:Sys=
tem.Type" />.</para>
        </param>
        <returns>
          <para>The <see cref=3D"T:System.Type" /> with the specified name,=
 if found; otherwise, <see langword=3D"null" /> . If the
   requested type is non-public and the caller does not have permission to =
reflect non-public objects
   outside the current assembly, this method returns <see langword=3D"null"=
 /> .</para>
        </returns>
        <exception cref=3D"T:System.ArgumentNullException">
          <paramref name=3D"typeName" /> is <see langword=3D"null" />. </ex=
ception>
        <exception cref=3D"T:System.Reflection.TargetInvocationException">A=
 type initializer was invoked and threw an exception.</exception>
        <exception cref=3D"T:System.TypeLoadException">
          <paramref name=3D"throwOnError" /> is <see langword=3D"true" /> a=
nd an error was encountered while loading the <see cref=3D"T:System.Type" /=
>.</exception>
        <remarks>
          <para>This method is equivalent to <see cref=3D"M:System.Type.Get=
Type(System.String,System.Boolean,System.Boolean)" />(<paramref name=3D"nam=
e" />, <paramref name=3D"throwOnError" />,=20
<see langword=3D"false" />).</para>
          <para>
            <paramref name=3D"typeName" /> can be a simple
type name, a fully qualified name, or a complex name that includes an assem=
bly
name specification. If <paramref name=3D"typeName" /> includes only the nam=
e of the <see cref=3D"T:System.Type" />, this method searches in the
calling object's assembly, then in the mscorlib.dll assembly. If
<paramref name=3D"typeName" />=20
is fully qualified with the partial or complete assembly name, this method
searches in the specified assembly.</para>
          <para>
            <block subset=3D"none" type=3D"note">
              <see cref=3D"P:System.Type.AssemblyQualifiedName" /> can retu=
rn a fully
qualified type name including nested types and the assembly name. For compl=
ete
details, see <see cref=3D"M:System.Type.GetType(System.String,System.Boolea=
n,System.Boolean)" />(<see cref=3D"T:System.String" />, <see cref=3D"T:Syst=
em.Boolean" />, <see cref=3D"T:System.Boolean" />). </block>
          </para>
        </remarks>
        <permission cref=3D"T:System.Security.Permissions.ReflectionPermiss=
ion">Requires permission to retrieve information on non-public objects. See=
 <see cref=3D"F:System.Security.Permissions.ReflectionPermissionFlag.TypeIn=
formation" qualify=3D"true" /></permission>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetType">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 static class System.Type GetType(string typeName)" />
      <MemberSignature Language=3D"C#" Value=3D"public static Type GetType(=
string typeName);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Type</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"typeName" Type=3D"System.String" />
      </Parameters>
      <Docs>
        <summary>
          <para>Returns the <see cref=3D"T:System.Type" /> with the specifi=
ed name.</para>
        </summary>
        <param name=3D"typeName">A <see cref=3D"T:System.String" /> contain=
ing the case-sensitive name of the <see cref=3D"T:System.Type" /> to return=
.</param>
        <returns>
          <para>The <see cref=3D"T:System.Type" /> with the specified name,=
 if found; otherwise, <see langword=3D"null" />. If the
   requested type is non-public and the caller does not have permission to =
reflect
   non-public objects outside the current assembly, this method returns
<see langword=3D"null" />.</para>
        </returns>
        <exception cref=3D"T:System.ArgumentNullException">
          <paramref name=3D"typeName" /> is <see langword=3D"null" />. </ex=
ception>
        <exception cref=3D"T:System.Reflection.TargetInvocationException">A=
 type initializer was invoked and threw an exception.</exception>
        <remarks>
          <para>This method is equivalent to <see cref=3D"M:System.Type.Get=
Type(System.String,System.Boolean,System.Boolean)" />(<paramref name=3D"nam=
e" />, <see langword=3D"false" />,
<see langword=3D"false" />).</para>
          <para>
            <paramref name=3D"typeName" /> can be a simple
type name, a type name that includes a namespace, or a complex name that
includes an assembly name specification. If <paramref name=3D"typeName" /> =
includes only the name of the <see cref=3D"T:System.Type" />, this method
searches in the calling object's assembly, then in the mscorlib.dll assembl=
y. If
<paramref name=3D"typeName" />=20
is fully qualified with the partial or complete assembly name, this method
searches in the specified assembly.</para>
          <para>
            <block subset=3D"none" type=3D"note">
              <see cref=3D"P:System.Type.AssemblyQualifiedName" /> can retu=
rn a fully qualified type name including
   nested types and the assembly name. For complete details, see <see cref=
=3D"M:System.Type.GetType(System.String,System.Boolean,System.Boolean)" />(=
<see cref=3D"T:System.String" />, <see cref=3D"T:System.Boolean" />, <see c=
ref=3D"T:System.Boolean" />).</block>
          </para>
        </remarks>
        <permission cref=3D"T:System.Security.Permissions.ReflectionPermiss=
ion">Requires permission to retrieve information on non-public members of t=
ypes in loaded assemblies. See <see cref=3D"F:System.Security.Permissions.R=
eflectionPermissionFlag.TypeInformation" />.</permission>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"InvokeMember">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 instance object InvokeMember(string name, valuetype System.Reflection.Bind=
ingFlags invokeAttr, class System.Reflection.Binder binder, object target, =
class System.Object[] args, class System.Globalization.CultureInfo culture)=
" />
      <MemberSignature Language=3D"C#" Value=3D"public object InvokeMember(=
string name, BindingFlags invokeAttr, Binder binder, object target, object[=
] args, CultureInfo culture);" />
      <MemberType>Method</MemberType>
      <Attributes />
      <ReturnValue>
        <ReturnType>System.Object</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"name" Type=3D"System.String" />
        <Parameter Name=3D"invokeAttr" Type=3D"System.Reflection.BindingFla=
gs" />
        <Parameter Name=3D"binder" Type=3D"System.Reflection.Binder" />
        <Parameter Name=3D"target" Type=3D"System.Object" />
        <Parameter Name=3D"args" Type=3D"System.Object[]" />
        <Parameter Name=3D"culture" Type=3D"System.Globalization.CultureInf=
o" />
      </Parameters>
      <Docs>
        <summary>
          <para>Invokes the specified member, using the specified binding c=
onstraints
      and matching the specified argument list and culture.</para>
        </summary>
        <param name=3D"name">
          <para>A <see cref=3D"T:System.String" /> containing the name of t=
he constructor or method to invoke, or property or field to access. If the =
type represented by the current instance has a default member, specify <see=
 cref=3D"F:System.String.Empty" /> to invoke that member. <block subset=3D"=
none" type=3D"note">For more information on default members, see <see cref=
=3D"T:System.Reflection.DefaultMemberAttribute" /> .</block></para>
        </param>
        <param name=3D"invokeAttr">
          <para>A bitwise combination of <see cref=3D"T:System.Reflection.B=
indingFlags" /> values that control the binding process. If zero is specifi=
ed, <see cref=3D"F:System.Reflection.BindingFlags.Public" /> | <see cref=3D=
"F:System.Reflection.BindingFlags.Instance" /> is used by default. </para>
        </param>
        <param name=3D"binder">
          <para>A <see cref=3D"T:System.Reflection.Binder" /> object that d=
efines a set of properties and enables the binding, coercion of argument ty=
pes, and invocation of members using reflection. Specify <see langword=3D"n=
ull" /> to use the <see cref=3D"P:System.Type.DefaultBinder" /> .</para>
        </param>
        <param name=3D"target">A <see cref=3D"T:System.Object" /> on which =
to invoke the member that matches the other specified criteria. If the matc=
hing member is <see langword=3D"static" /> , this parameter is ignored.</pa=
ram>
        <param name=3D"args">An array of objects containing the arguments t=
o pass to the member to be invoked. The elements of this array are of the s=
ame number and in the same order by assignment-compatible type as specified=
 by the contract of the member to be bound. Specify an empty array or <see =
langword=3D"null" /> for a member that has no parameters.</param>
        <param name=3D"culture">
          <para>The only defined value for this parameter is <see langword=
=3D"null" /> .</para>
        </param>
        <returns>
          <para>A <see cref=3D"T:System.Object" />
containing the return value of the invoked member. If the invoked member do=
es
not have a return value, returns a <see cref=3D"T:System.Object" /> contain=
ing <see cref=3D"T:System.Void" /> .</para>
        </returns>
        <exception cref=3D"T:System.ArgumentNullException">
          <para>
            <paramref name=3D"n" />
            <paramref name=3D"ame" /> is <see langword=3D"null" />.</para>
        </exception>
        <exception cref=3D"T:System.ArgumentException">
          <para>
            <paramref name=3D"args" /> has more than one dimension.</para>
          <para>-or-</para>
          <para>
            <paramref name=3D"invokeAttr" /> is not a valid <see cref=3D"T:=
System.Reflection.BindingFlags" /> value.</para>
          <para>-or-</para>
          <para>The member to be invoked is a constructor and <see cref=3D"=
F:System.Reflection.BindingFlags.CreateInstance" /> is not specified in <pa=
ramref name=3D"invokeAttr" />.</para>
          <para>-or-</para>
          <para>The member to be invoked is a method that is not a type ini=
tializer or instance constructor, and <see cref=3D"F:System.Reflection.Bind=
ingFlags.InvokeMethod" /> is not specified in <paramref name=3D"invokeAttr"=
 />.</para>
          <para>-or-</para>
          <para>The member to be accessed is a field, and neither <see cref=
=3D"F:System.Reflection.BindingFlags.GetField" /> nor <see cref=3D"F:System=
.Reflection.BindingFlags.SetField" /> is specified in <paramref name=3D"inv=
okeAttr" />.</para>
          <para>-or-</para>
          <para>The member to be accessed is a property, and neither <see c=
ref=3D"F:System.Reflection.BindingFlags.GetProperty" /> nor <see cref=3D"F:=
System.Reflection.BindingFlags.SetProperty" /> is specified in <paramref na=
me=3D"invokeAttr" />.</para>
          <para>-or-</para>
          <para>
            <paramref name=3D"invokeAttr" /> contains <see cref=3D"F:System=
.Reflection.BindingFlags.CreateInstance" /> and at least one of <see cref=
=3D"F:System.Reflection.BindingFlags.InvokeMethod" />, <see cref=3D"F:Syste=
m.Reflection.BindingFlags.GetField" />, <see cref=3D"F:System.Reflection.Bi=
ndingFlags.SetField" />, <see cref=3D"F:System.Reflection.BindingFlags.GetP=
roperty" />, or <see cref=3D"F:System.Reflection.BindingFlags.SetProperty" =
/>.</para>
          <para>-or-</para>
          <para>
            <paramref name=3D"invokeAttr" /> contains both <see cref=3D"F:S=
ystem.Reflection.BindingFlags.GetField" /> and <see cref=3D"F:System.Reflec=
tion.BindingFlags.SetField" />.</para>
          <para>-or-</para>
          <para>
            <paramref name=3D"invokeAttr" /> contains both <see cref=3D"F:S=
ystem.Reflection.BindingFlags.GetProperty" /> and <see cref=3D"F:System.Ref=
lection.BindingFlags.SetProperty" />.</para>
          <para>-or-</para>
          <para>
            <paramref name=3D"invokeAttr" /> contains <see cref=3D"F:System=
.Reflection.BindingFlags.InvokeMethod" />and at least one of <see cref=3D"F=
:System.Reflection.BindingFlags.SetField" /> or <see cref=3D"F:System.Refle=
ction.BindingFlags.SetProperty" />.</para>
          <para>-or-</para>
          <para>
            <paramref name=3D"invokeAttr" /> contains <see cref=3D"F:System=
.Reflection.BindingFlags.SetField" /> and <paramref name=3D"args" /> has mo=
re than one element.</para>
        </exception>
        <exception cref=3D"T:System.MissingFieldException">A field or prope=
rty matching the specified criteria was not found.</exception>
        <exception cref=3D"T:System.MissingMethodException">A method matchi=
ng the specified criteria was not found.</exception>
        <exception cref=3D"T:System.MethodAccessException">The requested me=
mber is non-public and the caller does not have the required permission.</e=
xception>
        <exception cref=3D"T:System.Reflection.TargetException">The member =
matching the specified criteria cannot be invoked on <paramref name=3D"targ=
et" />.</exception>
        <exception cref=3D"T:System.Reflection.TargetInvocationException">T=
he member matching the specified criteria threw an exception.</exception>
        <exception cref=3D"T:System.Reflection.AmbiguousMatchException">Mor=
e than one member matches the specified criteria.</exception>
        <remarks>
          <para>This version of <see cref=3D"M:System.Type.InvokeMember(Sys=
tem.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.O=
bject,System.Object[],System.Reflection.ParameterModifier[],System.Globaliz=
ation.CultureInfo,System.String[])" /> is equivalent to <see cref=3D"M:Syst=
em.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Re=
flection.Binder,System.Object,System.Object[],System.Reflection.ParameterMo=
difier[],System.Globalization.CultureInfo,System.String[])" />(
<paramref name=3D"name" />, <paramref name=3D"invokeAttr" />, <paramref nam=
e=3D"binder" />, <paramref name=3D"target" />, <paramref name=3D"args" />,=20
<see langword=3D"null" />, <paramref name=3D"culture" />, <see langword=3D"=
null" /> ). </para>
        </remarks>
        <permission cref=3D"T:System.Security.Permissions.ReflectionPermiss=
ion">Requires permission to retrieve information on non-public members of t=
ypes in loaded assemblies. See <see cref=3D"F:System.Security.Permissions.R=
eflectionPermissionFlag.TypeInformation" />.</permission>
        <example>
          <para> For an example that demonstrates
   <see cref=3D"M:System.Type.InvokeMember(System.String,System.Reflection.=
BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.=
Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.Stri=
ng[])" /> , see <see cref=3D"M:System.Type.InvokeMember(System.String,Syste=
m.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Obj=
ect[],System.Reflection.ParameterModifier[],System.Globalization.CultureInf=
o,System.String[])" />(
   <see cref=3D"T:System.String" />, <see cref=3D"T:System.Reflection.Bindi=
ngFlags" />,
   <see cref=3D"T:System.Reflection.Binder" />, <see cref=3D"T:System.Objec=
t" />, <see cref=3D"T:System.Object" />[], <see cref=3D"T:System.Reflection=
.ParameterModifier" />[], <see cref=3D"T:System.Globalization.CultureInfo" =
/>, <see cref=3D"T:System.String" />[]).
      </para>
        </example>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"InvokeMember">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 instance object InvokeMember(string name, valuetype System.Reflection.Bind=
ingFlags invokeAttr, class System.Reflection.Binder binder, object target, =
class System.Object[] args)" />
      <MemberSignature Language=3D"C#" Value=3D"public object InvokeMember(=
string name, BindingFlags invokeAttr, Binder binder, object target, object[=
] args);" />
      <MemberType>Method</MemberType>
      <Attributes />
      <ReturnValue>
        <ReturnType>System.Object</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"name" Type=3D"System.String" />
        <Parameter Name=3D"invokeAttr" Type=3D"System.Reflection.BindingFla=
gs" />
        <Parameter Name=3D"binder" Type=3D"System.Reflection.Binder" />
        <Parameter Name=3D"target" Type=3D"System.Object" />
        <Parameter Name=3D"args" Type=3D"System.Object[]" />
      </Parameters>
      <Docs>
        <summary>
          <para>Invokes the specified member, using the specified binding c=
onstraints and
      matching the specified argument list.</para>
        </summary>
        <param name=3D"name">
          <para>A <see cref=3D"T:System.String" /> containing the name of t=
he constructor or method to invoke, or property or field to access. If the =
type represented by the current instance has a default member, specify <see=
 cref=3D"F:System.String.Empty" /> to invoke that member. <block subset=3D"=
none" type=3D"note">For more information on default members, see <see cref=
=3D"T:System.Reflection.DefaultMemberAttribute" /> .</block></para>
        </param>
        <param name=3D"invokeAttr">A bitwise combination of <see cref=3D"T:=
System.Reflection.BindingFlags" /> values that control the binding process.=
 If zero is specified, <see cref=3D"F:System.Reflection.BindingFlags.Public=
" /> | <see cref=3D"F:System.Reflection.BindingFlags.Instance" /> is used b=
y default.</param>
        <param name=3D"binder">
          <para>A <see cref=3D"T:System.Reflection.Binder" /> object that d=
efines a set of properties and enables the binding, coercion of argument ty=
pes, and invocation of members using reflection. Specify <see langword=3D"n=
ull" /> to use the <see cref=3D"P:System.Type.DefaultBinder" /> .</para>
        </param>
        <param name=3D"target">A <see cref=3D"T:System.Object" /> on which =
to invoke the member that matches the other specified criteria. If the matc=
hing member is <see langword=3D"static" /> , this parameter is ignored.</pa=
ram>
        <param name=3D"args">An array of objects containing the arguments t=
o pass to the member to be invoked. The elements of this array are of the s=
ame number and in the same order by assignment-compatible type as specified=
 by the contract of the member to be bound. Specify an empty array or <see =
langword=3D"null" /> for a member that has no parameters.</param>
        <returns>
          <para>A <see cref=3D"T:System.Object" />
containing the return value of the invoked member. If the invoked member do=
es
not have a return value, returns a <see cref=3D"T:System.Object" /> contain=
ing <see cref=3D"T:System.Void" /> .</para>
        </returns>
        <exception cref=3D"T:System.ArgumentNullException">
          <para>
            <paramref name=3D"name" /> is <see langword=3D"null" />.</para>
        </exception>
        <exception cref=3D"T:System.ArgumentException">
          <para>
            <paramref name=3D"args" /> has more than one dimension.</para>
          <para>-or-</para>
          <para>
            <paramref name=3D"invokeAttr" /> is not a valid <see cref=3D"T:=
System.Reflection.BindingFlags" /> value.</para>
          <para>-or-</para>
          <para>The member to be invoked is a constructor and <see cref=3D"=
F:System.Reflection.BindingFlags.CreateInstance" /> is not specified in <pa=
ramref name=3D"invokeAttr" />.</para>
          <para>-or-</para>
          <para>The member to be invoked is a method that is not a type ini=
tializer or instance constructor, and <see cref=3D"F:System.Reflection.Bind=
ingFlags.InvokeMethod" /> is not specified in <paramref name=3D"invokeAttr"=
 />.</para>
          <para>-or-</para>
          <para>The member to be accessed is a field, and neither <see cref=
=3D"F:System.Reflection.BindingFlags.GetField" /> nor <see cref=3D"F:System=
.Reflection.BindingFlags.SetField" /> is specified in <paramref name=3D"inv=
okeAttr" />.</para>
          <para>-or-</para>
          <para>The member to be accessed is a property, and neither <see c=
ref=3D"F:System.Reflection.BindingFlags.GetProperty" /> nor <see cref=3D"F:=
System.Reflection.BindingFlags.SetProperty" /> is specified in <paramref na=
me=3D"invokeAttr" />.</para>
          <para>-or-</para>
          <para>
            <paramref name=3D"invokeAttr" /> contains <see cref=3D"F:System=
.Reflection.BindingFlags.CreateInstance" /> and at least one of <see cref=
=3D"F:System.Reflection.BindingFlags.InvokeMethod" />, <see cref=3D"F:Syste=
m.Reflection.BindingFlags.GetField" />, <see cref=3D"F:System.Reflection.Bi=
ndingFlags.SetField" />, <see cref=3D"F:System.Reflection.BindingFlags.GetP=
roperty" />, or <see cref=3D"F:System.Reflection.BindingFlags.SetProperty" =
/>.</para>
          <para>-or-</para>
          <para>
            <paramref name=3D"invokeAttr" /> contains both <see cref=3D"F:S=
ystem.Reflection.BindingFlags.GetField" /> and <see cref=3D"F:System.Reflec=
tion.BindingFlags.SetField" />.</para>
          <para>-or-</para>
          <para>
            <paramref name=3D"invokeAttr" /> contains both <see cref=3D"F:S=
ystem.Reflection.BindingFlags.GetProperty" /> and <see cref=3D"F:System.Ref=
lection.BindingFlags.SetProperty" />.</para>
          <para>-or-</para>
          <para>
            <paramref name=3D"invokeAttr" /> contains <see cref=3D"F:System=
.Reflection.BindingFlags.InvokeMethod" /> and at least one of <see cref=3D"=
F:System.Reflection.BindingFlags.SetField" /> or <see cref=3D"F:System.Refl=
ection.BindingFlags.SetProperty" />.</para>
          <para>-or-</para>
          <para>
            <paramref name=3D"invokeAttr" /> contains <see cref=3D"F:System=
.Reflection.BindingFlags.SetField" /> and <paramref name=3D"args" /> has mo=
re than one element.</para>
        </exception>
        <exception cref=3D"T:System.MissingFieldException">A field or prope=
rty matching the specified criteria was not found.</exception>
        <exception cref=3D"T:System.MissingMethodException">A method matchi=
ng the specified criteria cannot be found.</exception>
        <exception cref=3D"T:System.MethodAccessException">The requested me=
mber is non-public and the caller does not have the required permission.</e=
xception>
        <exception cref=3D"T:System.Reflection.TargetException">The member =
matching the specified criteria cannot be invoked on <paramref name=3D"targ=
et" />.</exception>
        <exception cref=3D"T:System.Reflection.TargetInvocationException">T=
he member matching the specified criteria threw an exception.</exception>
        <exception cref=3D"T:System.Reflection.AmbiguousMatchException">Mor=
e than one member matches the specified criteria.</exception>
        <remarks>
          <para>This version of <see cref=3D"M:System.Type.InvokeMember(Sys=
tem.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.O=
bject,System.Object[],System.Reflection.ParameterModifier[],System.Globaliz=
ation.CultureInfo,System.String[])" /> is equivalent to <see cref=3D"M:Syst=
em.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Re=
flection.Binder,System.Object,System.Object[],System.Reflection.ParameterMo=
difier[],System.Globalization.CultureInfo,System.String[])" />(<paramref na=
me=3D"name" />, <paramref name=3D"invokeAttr" />, <paramref name=3D"binder"=
 />,
<paramref name=3D"target" />, <paramref name=3D"args" />, <see langword=3D"=
null" />, <see langword=3D"null" />,=20
<see langword=3D"null" />).</para>
          <para>
            <block subset=3D"none" type=3D"note">For a demonstration of the=
 use of
<see cref=3D"M:System.Type.InvokeMember(System.String,System.Reflection.Bin=
dingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Ref=
lection.ParameterModifier[],System.Globalization.CultureInfo,System.String[=
])" />, see the example for <see cref=3D"M:System.Type.InvokeMember(System.=
String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Objec=
t,System.Object[],System.Reflection.ParameterModifier[],System.Globalizatio=
n.CultureInfo,System.String[])" />(=20
<see cref=3D"T:System.String" />, <see cref=3D"T:System.Reflection.BindingF=
lags" />,=20
<see cref=3D"T:System.Reflection.Binder" />, <see cref=3D"T:System.Object" =
/>, <see cref=3D"T:System.Object" />[], <see cref=3D"T:System.Reflection.Pa=
rameterModifier" />[], <see cref=3D"T:System.Globalization.CultureInfo" />,=
 <see cref=3D"T:System.String" />[]).</block>
          </para>
        </remarks>
        <permission cref=3D"T:System.Security.Permissions.ReflectionPermiss=
ion">Requires permission to retrieve information on non-public members of t=
ypes in loaded assemblies. See <see cref=3D"F:System.Security.Permissions.R=
eflectionPermissionFlag.TypeInformation" />.</permission>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetTypeHandle">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 static valuetype System.RuntimeTypeHandle GetTypeHandle(object o)" />
      <MemberSignature Language=3D"C#" Value=3D"public static RuntimeTypeHa=
ndle GetTypeHandle(object o);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.RuntimeTypeHandle</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"o" Type=3D"System.Object" />
      </Parameters>
      <Docs>
        <summary>
          <para>Returns the handle for the <see cref=3D"T:System.Type" /> o=
f the specified object.</para>
        </summary>
        <param name=3D"o">The object for which to get the type handle.</par=
am>
        <returns>
          <para>The <see cref=3D"T:System.RuntimeTypeHandle" /> for the <se=
e cref=3D"T:System.Type" /> of the specified <see cref=3D"T:System.Object" =
/>.</para>
        </returns>
        <remarks>
          <para>The handle is valid only in the application domain in which=
 it was obtained. </para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>RuntimeInfrastructure</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetTypeFromHandle">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 static class System.Type GetTypeFromHandle(valuetype System.RuntimeTypeHan=
dle handle)" />
      <MemberSignature Language=3D"C#" Value=3D"public static Type GetTypeF=
romHandle(RuntimeTypeHandle handle);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Type</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"handle" Type=3D"System.RuntimeTypeHandle" />
      </Parameters>
      <Docs>
        <summary>
          <para>Gets the <see cref=3D"T:System.Type" /> referenced by the s=
pecified type handle.</para>
        </summary>
        <param name=3D"handle">The <see cref=3D"T:System.RuntimeTypeHandle"=
 /> object that refers to the desired <see cref=3D"T:System.Type" />.</para=
m>
        <returns>
          <para>The <see cref=3D"T:System.Type" /> referenced by the specif=
ied <see cref=3D"T:System.RuntimeTypeHandle" />.</para>
        </returns>
        <exception cref=3D"T:System.ArgumentNullException">
          <paramref name=3D"handle" /> is <see langword=3D"null" />.</excep=
tion>
        <exception cref=3D"T:System.Security.SecurityException">The request=
ed type is non-public and outside the current assembly, and the caller does=
 not have the required permission.</exception>
        <exception cref=3D"T:System.Reflection.TargetInvocationException">A=
 type initializer was invoked and threw an exception.</exception>
        <remarks>
          <para>The handles are valid only in the application domain in whi=
ch they were obtained. </para>
        </remarks>
        <permission cref=3D"T:System.Security.Permissions.ReflectionPermiss=
ion">Requires permission to retrieve information on non-public objects. See=
 <see cref=3D"F:System.Security.Permissions.ReflectionPermissionFlag.TypeIn=
formation" qualify=3D"true" /></permission>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>RuntimeInfrastructure</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetConstructor">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 instance class System.Reflection.ConstructorInfo GetConstructor(valuetype =
System.Reflection.BindingFlags bindingAttr, class System.Reflection.Binder =
binder, class System.Type[] types, class System.Reflection.ParameterModifie=
r[] modifiers)" />
      <MemberSignature Language=3D"C#" Value=3D"public ConstructorInfo GetC=
onstructor(BindingFlags bindingAttr, Binder binder, Type[] types, Parameter=
Modifier[] modifiers);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.ConstructorInfo</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"bindingAttr" Type=3D"System.Reflection.BindingFl=
ags" />
        <Parameter Name=3D"binder" Type=3D"System.Reflection.Binder" />
        <Parameter Name=3D"types" Type=3D"System.Type[]" />
        <Parameter Name=3D"modifiers" Type=3D"System.Reflection.ParameterMo=
difier[]" />
      </Parameters>
      <Docs>
        <summary>
          <para>Returns a constructor defined in the type represented by th=
e current
      instance. The parameters of the constructor match the specified argum=
ent types
      and modifiers, under the specified binding constraints.</para>
        </summary>
        <param name=3D"bindingAttr">
          <para>A bitwise combination of <see cref=3D"T:System.Reflection.B=
indingFlags" /> values that control the binding process. If zero is specifi=
ed, this method returns null. </para>
        </param>
        <param name=3D"binder">
          <para>A <see cref=3D"T:System.Reflection.Binder" /> object that d=
efines a set of properties and enables the binding, coercion of argument ty=
pes, and invocation of members using reflection. Specify <see langword=3D"n=
ull" /> to use the <see cref=3D"P:System.Type.DefaultBinder" /> .</para>
        </param>
        <param name=3D"types">
          <para>An array of <see cref=3D"T:System.Type" /> objects. The ele=
ments in the array are of the same number, in the same order, and represent=
 the same types as the parameters for the constructor to be returned.</para=
>
        </param>
        <param name=3D"modifiers">The only defined value for this parameter=
 is <see langword=3D"null" /> .</param>
        <returns>
          <para>A <see cref=3D"T:System.Reflection.ConstructorInfo" /> obje=
ct that reflects the constructor
   that matches the specified criteria. If an exact match does not exist,
<paramref name=3D"binder" /> will attempt to coerce the parameter types spe=
cified in=20
<paramref name=3D"types" /> to select a match. If <paramref name=3D"binder"=
 /> is unable to select a=20
   match, returns <see langword=3D"null" /> . If the type represented by th=
e current
   instance is contained in a loaded assembly, the constructor that matches=
 the
   specified criteria is not public, and the caller does not have sufficien=
t
   permissions, returns <see langword=3D"null" />.</para>
        </returns>
        <exception cref=3D"T:System.ArgumentNullException">
          <para>
            <paramref name=3D"types" /> is <see langword=3D"null" />, or at=
 least one of the elements in <paramref name=3D"types" /> is <see langword=
=3D"null" />.</para>
        </exception>
        <exception cref=3D"T:System.ArgumentException">
          <para>
            <paramref name=3D"types" /> has more than one dimension.</para>
        </exception>
        <remarks>
          <para>The following <see cref=3D"T:System.Reflection.BindingFlags=
" /> are used to define which
   constructors to include in the search:</para>
          <list type=3D"bullet">
            <item>
              <term>
     =20
      Specify either <see cref=3D"F:System.Reflection.BindingFlags.Instance=
" /> or <see cref=3D"F:System.Reflection.BindingFlags.Static" />
      to get a return value other than <see langword=3D"null" />.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.Public" /> to i=
nclude public constructors
      in the search.</term>
            </item>
            <item>
              <term>
     =20
      Specify <see cref=3D"F:System.Reflection.BindingFlags.NonPublic" /> t=
o include non-public
      constructors (that is, private and protected constructors) in the
      search.</term>
            </item>
          </list>
          <para>
            <block subset=3D"none" type=3D"note">For more information, see =
<see cref=3D"T:System.Reflection.BindingFlags" />.</block>
          </para>
        </remarks>
        <permission cref=3D"T:System.Security.Permissions.ReflectionPermiss=
ion">Requires permission to retrieve information on non-public members of t=
ypes in loaded assemblies. See <see cref=3D"F:System.Security.Permissions.R=
eflectionPermissionFlag.TypeInformation" />.</permission>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetConstructor">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 instance class System.Reflection.ConstructorInfo GetConstructor(class Syst=
em.Type[] types)" />
      <MemberSignature Language=3D"C#" Value=3D"public ConstructorInfo GetC=
onstructor(Type[] types);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.ConstructorInfo</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"types" Type=3D"System.Type[]" />
      </Parameters>
      <Docs>
        <summary>
          <para>Returns a public instance constructor defined in the type r=
epresented by the
      current instance. The parameters of the constructor match the specifi=
ed argument
      types.</para>
        </summary>
        <param name=3D"types">
          <para>An array of <see cref=3D"T:System.Type" /> objects. The ele=
ments in the array are of the same number, in the same order, and represent=
 the same types as the parameters for the constructor to be returned. Speci=
fy <see cref=3D"F:System.Type.EmptyTypes" /> to obtain a constructor that t=
akes no parameters.</para>
        </param>
        <returns>
          <para>A <see cref=3D"T:System.Reflection.ConstructorInfo" /> obje=
ct representing the public instance
   constructor whose parameters match exactly the types in <paramref name=
=3D"types" /> , if found;
   otherwise, <see langword=3D"null" />. If the type represented by the cur=
rent
   instance is contained in a loaded assembly, the constructor that matches=
 the
   specified criteria is not public, and the caller does not have sufficien=
t
   permissions, returns <see langword=3D"null" />. </para>
        </returns>
        <exception cref=3D"T:System.ArgumentNullException">
          <para>
            <paramref name=3D"types" /> is <see langword=3D"null" />, or at=
 least one of the elements in <paramref name=3D"types" /> is <see langword=
=3D"null" />.</para>
        </exception>
        <exception cref=3D"T:System.ArgumentException">
          <para>
            <paramref name=3D"types" /> has more than one dimension.</para>
        </exception>
        <remarks>
          <para>This version of <see cref=3D"M:System.Type.GetConstructor(S=
ystem.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.Ca=
llingConventions,System.Type[],System.Reflection.ParameterModifier[])" /> i=
s equivalent to <see cref=3D"M:System.Type.GetConstructor(System.Reflection=
.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions=
,System.Type[],System.Reflection.ParameterModifier[])" />(<see cref=3D"F:Sy=
stem.Reflection.BindingFlags.Public" /> | <see cref=3D"F:System.Reflection.=
BindingFlags.Instance" />, <see langword=3D"null" />,
<paramref name=3D"types" />, <see langword=3D"null" />).</para>
          <see langword=3D"" />
        </remarks>
        <permission cref=3D"T:System.Security.Permissions.ReflectionPermiss=
ion">Requires permission to retrieve information on non-public members of t=
ypes in loaded assemblies. See <see cref=3D"F:System.Security.Permissions.R=
eflectionPermissionFlag.TypeInformation" />.</permission>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetConstructors">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 instance class System.Reflection.ConstructorInfo[] GetConstructors()" />
      <MemberSignature Language=3D"C#" Value=3D"public ConstructorInfo[] Ge=
tConstructors();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.ConstructorInfo[]</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Returns an array of the public constructors defined in the =
type represented
      by the current instance.</para>
        </summary>
        <returns>
          <para>An array of <see cref=3D"T:System.Reflection.ConstructorInf=
o" /> objects that reflect the public constructors
   defined in the type represented by the current instance. If no public
   constructors are defined in the type represented by the current instance=
,
   returns an empty array.</para>
        </returns>
        <remarks>
          <para>This version of <see cref=3D"M:System.Type.GetConstructors"=
 /> is equivalent to <see cref=3D"M:System.Type.GetConstructors" />(<see cr=
ef=3D"F:System.Reflection.BindingFlags.Public" /> | <see cref=3D"F:System.R=
eflection.BindingFlags.Instance" />).</para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetMethod">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 instance class System.Reflection.MethodInfo GetMethod(string name, class S=
ystem.Type[] types, class System.Reflection.ParameterModifier[] modifiers)"=
 />
      <MemberSignature Language=3D"C#" Value=3D"public MethodInfo GetMethod=
(string name, Type[] types, ParameterModifier[] modifiers);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.MethodInfo</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"name" Type=3D"System.String" />
        <Parameter Name=3D"types" Type=3D"System.Type[]" />
        <Parameter Name=3D"modifiers" Type=3D"System.Reflection.ParameterMo=
difier[]" />
      </Parameters>
      <Docs>
        <summary>
          <para>Returns a <see cref=3D"T:System.Reflection.MethodInfo" /> o=
bject that reflects the public method that
   has the specified name and is defined in the type represented by the cur=
rent
   instance.</para>
        </summary>
        <param name=3D"name">A <see cref=3D"T:System.String" /> containing =
the name of the public method to be returned.</param>
        <param name=3D"types">
          <para>An array of <see cref=3D"T:System.Type" /> objects. The ele=
ments in the array are of the same number, in the same order, and represent=
 the same types as the parameters for the method to be returned.</para>
        </param>
        <param name=3D"modifiers">The only defined value for this parameter=
 is <see langword=3D"null" /> .</param>
        <returns>
          <para>A <see cref=3D"T:System.Reflection.MethodInfo" /> object re=
flecting the public method that is
   defined in the type represented by the current instance and matches the
   specified criteria, if found; otherwise, <see langword=3D"null" />.</par=
a>
        </returns>
        <exception cref=3D"T:System.Reflection.AmbiguousMatchException">Mor=
e than one method matching the specified criteria was found.</exception>
        <exception cref=3D"T:System.ArgumentNullException">
          <para>
            <paramref name=3D"name" /> or <paramref name=3D"types" /> is <s=
ee langword=3D"null" />.</para>
          <para>-or-</para>
          <para>At least one of the elements in <paramref name=3D"types" />=
 is <see langword=3D"null" />.</para>
        </exception>
        <exception cref=3D"T:System.ArgumentException">
          <para>
            <paramref name=3D"types" /> has more than one dimension.</para>
        </exception>
        <remarks>
          <para>The default binder does not process
      <paramref name=3D"modifier" /> . </para>
          <para>The search for <paramref name=3D"name" /> is case-sensitive=
.</para>
          <para>This version of <see cref=3D"M:System.Type.GetMethod(System=
.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Refl=
ection.CallingConventions,System.Type[],System.Reflection.ParameterModifier=
[])" /> is equivalent to <see cref=3D"M:System.Type.GetMethod(System.String=
,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.=
CallingConventions,System.Type[],System.Reflection.ParameterModifier[])" />=
 ( <paramref name=3D"name" />, <see cref=3D"F:System.Reflection.BindingFlag=
s.Public" /> |<see cref=3D"F:System.Reflection.BindingFlags.Static" /> |<se=
e cref=3D"F:System.Reflection.BindingFlags.Instance" /> , <see langword=3D"=
null" />,<paramref name=3D" types" /> , <paramref name=3D"modifiers" />).</=
para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetMethod">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 instance class System.Reflection.MethodInfo GetMethod(string name, class S=
ystem.Type[] types)" />
      <MemberSignature Language=3D"C#" Value=3D"public MethodInfo GetMethod=
(string name, Type[] types);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.MethodInfo</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"name" Type=3D"System.String" />
        <Parameter Name=3D"types" Type=3D"System.Type[]" />
      </Parameters>
      <Docs>
        <summary>
          <para>Returns a <see cref=3D"T:System.Reflection.MethodInfo" /> o=
bject that reflects the public method defined in
   the type represented by the current instance that has the specified name=
 and parameter
   information.</para>
        </summary>
        <param name=3D"name">A <see cref=3D"T:System.String" /> containing =
the name of the public method to be returned.</param>
        <param name=3D"types">
          <para>An array of <see cref=3D"T:System.Type" /> objects. The ele=
ments in the array are of the same number, in the same order, and represent=
 the same types as the parameters for the method to be returned.</para>
        </param>
        <returns>
          <para>A <see cref=3D"T:System.Reflection.MethodInfo" /> object re=
flecting
   the public method defined in the type represented by the current instanc=
e
   that matches the specified criteria. If no public method matching the sp=
ecified criteria
   is found, returns <see langword=3D"null" /> . </para>
        </returns>
        <exception cref=3D"T:System.Reflection.AmbiguousMatchException">Mor=
e than one method matching the specified criteria was found.</exception>
        <exception cref=3D"T:System.ArgumentNullException">
          <para>
            <paramref name=3D"name" /> or <paramref name=3D"types" /> is <s=
ee langword=3D"null" />.</para>
          <para>-or-</para>
          <para>At least one of the elements in <paramref name=3D"types" />=
 is <see langword=3D"null" />.</para>
        </exception>
        <exception cref=3D"T:System.ArgumentException">
          <para>
            <paramref name=3D"types" /> has more than one dimension.</para>
        </exception>
        <remarks>
          <para>The search for <paramref name=3D"name" /> is case-sensitive=
.</para>
          <para>This version of <see cref=3D"M:System.Type.GetMethod(System=
.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Refl=
ection.CallingConventions,System.Type[],System.Reflection.ParameterModifier=
[])" /> is equivalent to <see cref=3D"M:System.Type.GetMethod(System.String=
,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.=
CallingConventions,System.Type[],System.Reflection.ParameterModifier[])" />=
(<paramref name=3D"name" />, <see cref=3D"F:System.Reflection.BindingFlags.=
Public" /> | <see cref=3D"F:System.Reflection.BindingFlags.Static" /> | <se=
e cref=3D"F:System.Reflection.BindingFlags.Instance" />, <see langword=3D"n=
ull" />,
<paramref name=3D"types" />, <see langword=3D"null" />).</para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetMethod">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 instance class System.Reflection.MethodInfo GetMethod(string name)" />
      <MemberSignature Language=3D"C#" Value=3D"public MethodInfo GetMethod=
(string name);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.MethodInfo</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"name" Type=3D"System.String" />
      </Parameters>
      <Docs>
        <summary>
          <para>Returns a <see cref=3D"T:System.Reflection.MethodInfo" /> o=
bject that reflects the public method that
   has the specified name and is defined in the type represented by the cur=
rent
   instance.</para>
        </summary>
        <param name=3D"name">A <see cref=3D"T:System.String" /> containing =
the name of the public method to be returned.</param>
        <returns>
          <para>A <see cref=3D"T:System.Reflection.MethodInfo" /> object re=
flecting the public method that is
   defined in the type represented by the current instance and has the spec=
ified
   name, if found; otherwise, <see langword=3D"null" />.</para>
        </returns>
        <exception cref=3D"T:System.Reflection.AmbiguousMatchException">Mor=
e than one method matching the specified criteria was found.</exception>
        <exception cref=3D"T:System.ArgumentNullException">
          <paramref name=3D"name" /> is <see langword=3D"null" />. </except=
ion>
        <remarks>
          <para>The search for <paramref name=3D"name" /> is case-sensitive=
.</para>
          <para>This version of <see cref=3D"M:System.Type.GetMethod(System=
.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Refl=
ection.CallingConventions,System.Type[],System.Reflection.ParameterModifier=
[])" /> is equivalent to <see cref=3D"M:System.Type.GetMethod(System.String=
,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.=
CallingConventions,System.Type[],System.Reflection.ParameterModifier[])" />=
(<paramref name=3D"name" />, <see cref=3D"F:System.Reflection.BindingFlags.=
Public" /> | <see cref=3D"F:System.Reflection.BindingFlags.Static" /> | <se=
e cref=3D"F:System.Reflection.BindingFlags.Instance" />, <see langword=3D"n=
ull" />,
<see langword=3D"null" />, <see langword=3D"null" />).</para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetMethods">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 instance class System.Reflection.MethodInfo[] GetMethods()" />
      <MemberSignature Language=3D"C#" Value=3D"public MethodInfo[] GetMeth=
ods();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.MethodInfo[]</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Returns the public methods defined in the type represented =
by the current
      instance.</para>
        </summary>
        <returns>
          <para>An array of <see cref=3D"T:System.Reflection.MethodInfo" />=
 objects reflecting the public methods defined in the
   type represented by the current instance under the constraints of
<paramref name=3D"bindingAttr" />. If no methods matching the constraints a=
re found, returns an=20
   empty array.</para>
        </returns>
        <remarks>
          <para>This version of <see cref=3D"M:System.Type.GetMethods" /> i=
s equivalent to <see cref=3D"M:System.Type.GetMethods" />( <see cref=3D"F:S=
ystem.Reflection.BindingFlags.Instance" /> | <see cref=3D"F:System.Reflecti=
on.BindingFlags.Static" /> | <see cref=3D"F:System.Reflection.BindingFlags.=
Public" /> ).</para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetField">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 instance class System.Reflection.FieldInfo GetField(string name)" />
      <MemberSignature Language=3D"C#" Value=3D"public FieldInfo GetField(s=
tring name);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.FieldInfo</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"name" Type=3D"System.String" />
      </Parameters>
      <Docs>
        <summary>
          <para>Returns a <see cref=3D"T:System.Reflection.FieldInfo" /> ob=
ject reflecting the field that has the
   specified name and is defined in the type represented by the current
   instance.</para>
        </summary>
        <param name=3D"name">A <see cref=3D"T:System.String" /> containing =
the name of the field to be returned.</param>
        <returns>
          <para>A <see cref=3D"T:System.Reflection.FieldInfo" /> object ref=
lecting the field that is named
<paramref name=3D"name" /> and is defined in the type represented by the cu=
rrent instance, if=20
   found; otherwise, <see langword=3D"null" />. If the selected field is no=
n-public, the type represented by the
   current instance is from a loaded assembly and the caller does not have
   sufficient permission to reflect on non-public objects in loaded assembl=
ies,
   returns <see langword=3D"null" />.</para>
        </returns>
        <exception cref=3D"T:System.ArgumentNullException">
          <paramref name=3D"name" /> is <see langword=3D"null" />. </except=
ion>
        <remarks>
          <para>The search for <paramref name=3D"name" /> is case-sensitive=
.</para>
          <para>This version of <see cref=3D"M:System.Type.GetField(System.=
String,System.Reflection.BindingFlags)" /> is equivalent to <see cref=3D"M:=
System.Type.GetField(System.String,System.Reflection.BindingFlags)" />(
<paramref name=3D"name" />, <see cref=3D"F:System.Reflection.BindingFlags.P=
ublic" /> | <see cref=3D"F:System.Reflection.BindingFlags.Static" /> | <see=
 cref=3D"F:System.Reflection.BindingFlags.Instance" /> ).</para>
        </remarks>
        <permission cref=3D"T:System.Security.Permissions.ReflectionPermiss=
ion">Requires permission to retrieve information on non-public members of t=
ypes in loaded assemblies. See <see cref=3D"F:System.Security.Permissions.R=
eflectionPermissionFlag.TypeInformation" />.</permission>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetFields">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 instance class System.Reflection.FieldInfo[] GetFields()" />
      <MemberSignature Language=3D"C#" Value=3D"public FieldInfo[] GetField=
s();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.FieldInfo[]</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Returns an array of <see cref=3D"T:System.Reflection.FieldI=
nfo" /> objects that reflect the public fields
   defined in the type represented by the current instance.</para>
        </summary>
        <returns>
          <para>An array of <see cref=3D"T:System.Reflection.FieldInfo" /> =
objects that reflect the public fields
   defined in the type represented by the current instance. If no public fi=
elds
   are defined in the type represented by the current instance, returns an =
empty
   array.</para>
        </returns>
        <remarks>
          <para>This version of <see cref=3D"M:System.Type.GetFields" /> is=
 equivalent to <see cref=3D"M:System.Type.GetFields" />( <see cref=3D"F:Sys=
tem.Reflection.BindingFlags.Instance" /> | <see cref=3D"F:System.Reflection=
.BindingFlags.Static" /> | <see cref=3D"F:System.Reflection.BindingFlags.Pu=
blic" /> ).</para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetInterface">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 instance class System.Type GetInterface(string name)" />
      <MemberSignature Language=3D"C#" Value=3D"public Type GetInterface(st=
ring name);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Type</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"name" Type=3D"System.String" />
      </Parameters>
      <Docs>
        <summary>
          <para> Searches for the interface with the specified name.
      </para>
        </summary>
        <param name=3D"name">A <see cref=3D"T:System.String" /> containing =
the name of the interface to get. </param>
        <returns>
          <para> A <see cref=3D"T:System.Type" /> object
   representing the interface with the specified name, implemented or inher=
ited by
   the current <see cref=3D"T:System.Type" />, if found; otherwise, <see la=
ngword=3D"null" />.
   </para>
        </returns>
        <exception cref=3D"T:System.ArgumentNullException">
          <paramref name=3D"name" /> is <see langword=3D"null" />. </except=
ion>
        <remarks>
          <para> The search for <paramref name=3D"name" /> is case-sensitiv=
e.
   </para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetEvent">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 instance class System.Reflection.EventInfo GetEvent(string name)" />
      <MemberSignature Language=3D"C#" Value=3D"public EventInfo GetEvent(s=
tring name);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.EventInfo</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"name" Type=3D"System.String" />
      </Parameters>
      <Docs>
        <summary>
          <para>Returns a <see cref=3D"T:System.Reflection.EventInfo" /> ob=
ject reflecting the public event that has the
   specified name and is defined in the type represented by the current
   instance.</para>
        </summary>
        <param name=3D"name">A <see cref=3D"T:System.String" /> containing =
the name of the public event to be returned.</param>
        <returns>
          <para>A <see cref=3D"T:System.Reflection.EventInfo" /> object=20
   reflecting the public event that is named
<paramref name=3D"name" /> and is defined in the type represented by the cu=
rrent instance, if=20
   found; otherwise, <see langword=3D"null" />.</para>
        </returns>
        <exception cref=3D"T:System.ArgumentNullException">
          <paramref name=3D"name" /> is <see langword=3D"null" />.</excepti=
on>
        <remarks>
          <para>This version of <see cref=3D"M:System.Type.GetEvent(System.=
String)" /> is equivalent to <see cref=3D"M:System.Type.GetEvent(System.Str=
ing)" />( <paramref name=3D"name" />, <see cref=3D"F:System.Reflection.Bind=
ingFlags.Static" /> | <see cref=3D"F:System.Reflection.BindingFlags.Instanc=
e" /> | <see cref=3D"F:System.Reflection.BindingFlags.Public" /> ).</para>
          <para>The search for <paramref name=3D"name" /> is case-sensitive=
.</para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetProperty">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 instance class System.Reflection.PropertyInfo GetProperty(string name, cla=
ss System.Type returnType, class System.Type[] types)" />
      <MemberSignature Language=3D"C#" Value=3D"public PropertyInfo GetProp=
erty(string name, Type returnType, Type[] types);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.PropertyInfo</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"name" Type=3D"System.String" />
        <Parameter Name=3D"returnType" Type=3D"System.Type" />
        <Parameter Name=3D"types" Type=3D"System.Type[]" />
      </Parameters>
      <Docs>
        <summary>
          <para>Returns a <see cref=3D"T:System.Reflection.PropertyInfo" />=
 object that reflects the public property
   defined in the type represented by the current instance that matches the=
 specified search
   criteria.</para>
        </summary>
        <param name=3D"name">A <see cref=3D"T:System.String" /> containing =
the name of the public property to be returned.</param>
        <param name=3D" returnType">A <see cref=3D"T:System.Type" /> object=
 that represents the type of the public property to be returned.</param>
        <param name=3D"types">
          <para>An array of <see cref=3D"T:System.Type" /> objects. The ele=
ments in the array are of the same number, in the same order, and represent=
 the same types as the parameters for the indexer to be returned. Specify <=
see cref=3D"F:System.Type.EmptyTypes" /> for a property that is not indexed=
.</para>
        </param>
        <returns>
          <para>A <see cref=3D"T:System.Reflection.PropertyInfo" /> object
   reflecting the public property defined in the type represented by
   the current instance that matches the specified criteria. If no matching=
 property is
   found, returns <see langword=3D"null" /> . </para>
        </returns>
        <exception cref=3D"T:System.Reflection.AmbiguousMatchException">Mor=
e than one property matching the specified criteria was found.</exception>
        <exception cref=3D"T:System.ArgumentNullException">
          <para>
            <paramref name=3D"name" /> or <paramref name=3D"types" /> is <s=
ee langword=3D"null" />, or at least one of the elements in <paramref name=
=3D"types" /> is <see langword=3D"null" />.</para>
        </exception>
        <exception cref=3D"T:System.ArgumentException">
          <paramref name=3D"types" /> has more than one dimension.</excepti=
on>
        <remarks>
          <para>This version of <see cref=3D"M:System.Type.GetProperty(Syst=
em.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Ty=
pe,System.Type[],System.Reflection.ParameterModifier[])" /> is equivalent t=
o <see cref=3D"M:System.Type.GetPropertyImpl(System.String,System.Reflectio=
n.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Re=
flection.ParameterModifier[])" />(<paramref name=3D"name" />, <see cref=3D"=
F:System.Reflection.BindingFlags.Static" /> | <see cref=3D"F:System.Reflect=
ion.BindingFlags.Instance" /> | <see cref=3D"F:System.Reflection.BindingFla=
gs.Public" />,
<see langword=3D"null" />, <paramref name=3D"returnTypes" />, <paramref nam=
e=3D"types" />,=20
<see langword=3D"null" />).</para>
          <para>The search for <paramref name=3D"name" /> is case-sensitive=
.</para>
          <para>Different programming languages use different syntax to=20
   specify indexed properties. Internally, this property is referred to by =
the name
   "Item" in the metadata. Therefore, any attempt to retrieve an indexed
   property using reflection is required to
   specify this internal name in order for the <see langword=3D"PropertyInf=
o" /> to be returned correctly.</para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetProperty">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 instance class System.Reflection.PropertyInfo GetProperty(string name, cla=
ss System.Type[] types)" />
      <MemberSignature Language=3D"C#" Value=3D"public PropertyInfo GetProp=
erty(string name, Type[] types);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.PropertyInfo</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"name" Type=3D"System.String" />
        <Parameter Name=3D"types" Type=3D"System.Type[]" />
      </Parameters>
      <Docs>
        <summary>
          <para>Returns a <see cref=3D"T:System.Reflection.PropertyInfo" />=
 object that reflects the public property defined
   in the type represented by the current instance that matches the specifi=
ed search
   criteria.</para>
        </summary>
        <param name=3D"name">A <see cref=3D"T:System.String" /> containing =
the name of the public property to be returned.</param>
        <param name=3D"types">
          <para>An array of <see cref=3D"T:System.Type" /> objects. The ele=
ments in the array are of the same number, in the same order, and represent=
 the same types as the parameters for the indexer to be returned. Specify <=
see cref=3D"F:System.Type.EmptyTypes" /> to obtain a property that is not i=
ndexed.</para>
        </param>
        <returns>
          <para>A <see cref=3D"T:System.Reflection.PropertyInfo" /> object =
reflecting the public property defined
   on the type represented by the current instance that matches the specifi=
ed
   criteria. If no matching property is found, returns <see langword=3D"nul=
l" /> .</para>
        </returns>
        <exception cref=3D"T:System.Reflection.AmbiguousMatchException">Mor=
e than one property matching the specified criteria was found.</exception>
        <exception cref=3D"T:System.ArgumentNullException">
          <para>
            <paramref name=3D"name" /> or <paramref name=3D"types" /> is <s=
ee langword=3D"null" />, or at least one of the elements in <paramref name=
=3D"types" /> is <see langword=3D"null" />.</para>
        </exception>
        <exception cref=3D"T:System.ArgumentException">
          <para>
            <paramref name=3D"types" /> has more than one dimension.</para>
        </exception>
        <remarks>
          <para>This version of <see cref=3D"M:System.Type.GetProperty(Syst=
em.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Ty=
pe,System.Type[],System.Reflection.ParameterModifier[])" /> is equivalent t=
o <see cref=3D"M:System.Type.GetPropertyImpl(System.String,System.Reflectio=
n.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Re=
flection.ParameterModifier[])" />(<paramref name=3D"name" />, <see cref=3D"=
F:System.Reflection.BindingFlags.Static" /> | <see cref=3D"F:System.Reflect=
ion.BindingFlags.Instance" /> | <see cref=3D"F:System.Reflection.BindingFla=
gs.Public" />,
<see langword=3D"null" />, <see langword=3D"null" />, <paramref name=3D"typ=
es" />,=20
<see langword=3D"null" />).</para>
          <para>The search for <paramref name=3D"name" /> is case-sensitive=
.</para>
          <para>Different programming languages use different syntax to=20
   specify indexed properties. Internally, this property is referred to by =
the name
   "Item" in the metadata. Therefore, any attempt to retrieve an indexed pr=
operty
   using reflection is required to
   specify this internal name in order for the <see langword=3D"PropertyInf=
o" /> to be returned correctly.</para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetProperty">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 instance class System.Reflection.PropertyInfo GetProperty(string name, cla=
ss System.Type returnType)" />
      <MemberSignature Language=3D"C#" Value=3D"public PropertyInfo GetProp=
erty(string name, Type returnType);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.PropertyInfo</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"name" Type=3D"System.String" />
        <Parameter Name=3D"returnType" Type=3D"System.Type" />
      </Parameters>
      <Docs>
        <summary>
          <para>Returns a <see cref=3D"T:System.Reflection.PropertyInfo" />=
=20
object that reflects the public property defined in the type represented by=
 the current
instance that matches the specified search criteria.</para>
        </summary>
        <param name=3D"name">A <see cref=3D"T:System.String" /> containing =
the name of the property to be returned.</param>
        <param name=3D" returnType">A <see cref=3D"T:System.Type" /> object=
 that represents the type of the property to be returned.</param>
        <returns>
          <para>A <see cref=3D"T:System.Reflection.PropertyInfo" /> object =
reflecting the public property defined=20
   on the type represented by the current instance that matches the specifi=
ed
   criteria. If no matching property is found, returns <see langword=3D"nul=
l" /> .</para>
        </returns>
        <exception cref=3D"T:System.Reflection.AmbiguousMatchException">Mor=
e than one property matching the specified criteria was found.</exception>
        <exception cref=3D"T:System.ArgumentNullException">
          <para>
            <paramref name=3D"name" /> is <see langword=3D"null" />.</para>
        </exception>
        <remarks>
          <para>This version of <see cref=3D"M:System.Type.GetProperty(Syst=
em.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Ty=
pe,System.Type[],System.Reflection.ParameterModifier[])" /> is equivalent t=
o <see cref=3D"M:System.Type.GetPropertyImpl(System.String,System.Reflectio=
n.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Re=
flection.ParameterModifier[])" />(<paramref name=3D"name" />, <see cref=3D"=
F:System.Reflection.BindingFlags.Static" /> | <see cref=3D"F:System.Reflect=
ion.BindingFlags.Instance" /> | <see cref=3D"F:System.Reflection.BindingFla=
gs.Public" />,
<see langword=3D"null" />, <paramref name=3D"returnType" />, <see langword=
=3D"null" />,=20
<see langword=3D"null" />).</para>
          <para>The search for <paramref name=3D"name" /> is case-sensitive=
.</para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetProperty">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 instance class System.Reflection.PropertyInfo GetProperty(string name)" />
      <MemberSignature Language=3D"C#" Value=3D"public PropertyInfo GetProp=
erty(string name);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.PropertyInfo</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"name" Type=3D"System.String" />
      </Parameters>
      <Docs>
        <summary>
          <para>Returns a <see cref=3D"T:System.Reflection.PropertyInfo" />=
 object that reflects the public
   property defined in the type represented by the current instance that ha=
s the specified
   name.</para>
        </summary>
        <param name=3D"name">A <see cref=3D"T:System.String" /> containing =
the name of the property to be returned.</param>
        <returns>
          <para>A <see cref=3D"T:System.Reflection.PropertyInfo" /> object =
reflecting the public property defined=20
   on the type represented by the current instance that has the specified n=
ame. If
   no matching property is found, returns <see langword=3D"null" /> . </par=
a>
        </returns>
        <exception cref=3D"T:System.Reflection.AmbiguousMatchException">Mor=
e than one property matching the specified criteria was found.</exception>
        <exception cref=3D"T:System.ArgumentNullException">
          <para>
            <paramref name=3D"name" /> is <see langword=3D"null" />.</para>
        </exception>
        <remarks>
          <para>This version of <see cref=3D"M:System.Type.GetProperty(Syst=
em.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Ty=
pe,System.Type[],System.Reflection.ParameterModifier[])" /> is equivalent t=
o <see cref=3D"M:System.Type.GetPropertyImpl(System.String,System.Reflectio=
n.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Re=
flection.ParameterModifier[])" />(<paramref name=3D"name" />, <see cref=3D"=
F:System.Reflection.BindingFlags.Static" /> | <see cref=3D"F:System.Reflect=
ion.BindingFlags.Instance" /> | <see cref=3D"F:System.Reflection.BindingFla=
gs.Public" />,
<see langword=3D"null" />, <see langword=3D"null" />, <see langword=3D"null=
" />,=20
<see langword=3D"null" />).</para>
          <para>The search for <paramref name=3D"name" /> is case-sensitive=
.</para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetProperties">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 instance class System.Reflection.PropertyInfo[] GetProperties()" />
      <MemberSignature Language=3D"C#" Value=3D"public PropertyInfo[] GetPr=
operties();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.PropertyInfo[]</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Returns an array of <see cref=3D"T:System.Reflection.Proper=
tyInfo" /> objects that reflect the public properties
   defined in the type represented by the current instance.</para>
        </summary>
        <returns>
          <para>An array of <see cref=3D"T:System.Reflection.PropertyInfo" =
/>=20
objects that reflect the public properties defined in the type
represented by the current instance. If no public properties are found, ret=
urns
an empty array.</para>
        </returns>
        <remarks>
          <para>This version of <see cref=3D"M:System.Type.GetProperties(Sy=
stem.Reflection.BindingFlags)" /> is equivalent to <see cref=3D"M:System.Ty=
pe.GetProperties(System.Reflection.BindingFlags)" />(
<see cref=3D"F:System.Reflection.BindingFlags.Instance" /> | <see cref=3D"F=
:System.Reflection.BindingFlags.Static" /> | <see cref=3D"F:System.Reflecti=
on.BindingFlags.Public" /> ).</para>
          <para>A property is considered by reflection
   to be <see langword=3D"public" /> if it has at least one accessor that i=
s
<see langword=3D"public" />. Otherwise, the property is considered to be no=
t=20
<see langword=3D"public" />.</para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetNestedTypes">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 instance class System.Type[] GetNestedTypes()" />
      <MemberSignature Language=3D"C#" Value=3D"public Type[] GetNestedType=
s();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Type[]</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Returns all the public types nested within the current <see=
 cref=3D"T:System.Type" />.</para>
        </summary>
        <returns>
          <para>An array of <see cref=3D"T:System.Type" /> objects represen=
ting all public types nested within the type
   represented by the current instance, if any. Otherwise, returns an empty=
 <see cref=3D"T:System.Type" /> array.</para>
        </returns>
        <remarks>
          <para>This version of <see cref=3D"M:System.Type.GetNestedTypes" =
/> is equivalent to <see cref=3D"M:System.Type.GetNestedTypes" />(<see cref=
=3D"F:System.Reflection.BindingFlags.Public" />).</para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetNestedType">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 instance class System.Type GetNestedType(string name)" />
      <MemberSignature Language=3D"C#" Value=3D"public Type GetNestedType(s=
tring name);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Type</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"name" Type=3D"System.String" />
      </Parameters>
      <Docs>
        <summary>
          <para>Returns the public nested type defined in the type represen=
ted by the current instance</para>
        </summary>
        <param name=3D"name">A <see cref=3D"T:System.String" /> containing =
the name of the public nested type to return. Specify the unqualified name =
of the nested type. <block subset=3D"none" type=3D"note">For example, for a=
 type B nested within A, if typeA represents the type object for A, the cor=
rect invocation is typeA.GetNestedType("B"). </block></param>
        <returns>
          <para>A <see cref=3D"T:System.Type" /> object
   representing the public nested type with the specified
   name, if found; otherwise, <see langword=3D"null" />.</para>
        </returns>
        <exception cref=3D"T:System.ArgumentNullException">
          <paramref name=3D"name" /> is <see langword=3D"null" />. </except=
ion>
        <remarks>
          <para>The search for <paramref name=3D"name" /> is case-sensitive=
.</para>
          <para>This version of <see cref=3D"M:System.Type.GetNestedTypes" =
/> is equivalent to <see cref=3D"M:System.Type.GetNestedTypes" />(<paramref=
 name=3D"name" />, <see cref=3D"F:System.Reflection.BindingFlags.Public" />=
).</para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetMember">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 instance class System.Reflection.MemberInfo[] GetMember(string name)" />
      <MemberSignature Language=3D"C#" Value=3D"public MemberInfo[] GetMemb=
er(string name);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.MemberInfo[]</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"name" Type=3D"System.String" />
      </Parameters>
      <Docs>
        <summary>
          <para>Returns an array of <see cref=3D"T:System.Reflection.Member=
Info" /> objects that reflect the public members that
   have the specified name and are defined in the type represented by the c=
urrent
   instance.</para>
        </summary>
        <param name=3D"name">A <see cref=3D"T:System.String" /> containing =
the name of the members to be returned.</param>
        <returns>
          <para>An array of <see cref=3D"T:System.Reflection.MemberInfo" />=
 objects that reflect the public members that
   are named <paramref name=3D"name" /> and are defined in the type represe=
nted by the current instance. If no public
   members with the specified name are defined in the type represented by t=
he
   current instance, returns an empty array.</para>
        </returns>
        <exception cref=3D"T:System.ArgumentNullException">
          <paramref name=3D"name" /> is <see langword=3D"null" />. </except=
ion>
        <remarks>
          <para>This version of <see cref=3D"M:System.Type.GetMember(System=
.String)" /> is equivalent to <see cref=3D"M:System.Type.GetMember(System.S=
tring)" />( <paramref name=3D"name" />, <see cref=3D"F:System.Reflection.Bi=
ndingFlags.Static" /> | <see cref=3D"F:System.Reflection.BindingFlags.Insta=
nce" /> | <see cref=3D"F:System.Reflection.BindingFlags.Public" /> ).</para=
>
          <para>The search for <paramref name=3D"name" /> is case-sensitive=
.</para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetMembers">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 instance class System.Reflection.MemberInfo[] GetMembers()" />
      <MemberSignature Language=3D"C#" Value=3D"public MemberInfo[] GetMemb=
ers();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.MemberInfo[]</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Returns an array of <see cref=3D"T:System.Reflection.Member=
Info" /> objects that reflect the public members
   defined in the type represented by the current instance.</para>
        </summary>
        <returns>
          <para>An array of <see cref=3D"T:System.Reflection.MemberInfo" />=
 objects that reflect the public members
   defined in the type represented by the current instance. If no public me=
mbers
   are defined in the type represented by the current instance, returns an =
empty
   array.</para>
        </returns>
        <remarks>
          <para>This version of <see cref=3D"M:System.Type.GetMembers" /> i=
s equivalent to <see cref=3D"M:System.Type.GetMembers" />(<see cref=3D"F:Sy=
stem.Reflection.BindingFlags.Public" /> | <see cref=3D"F:System.Reflection.=
BindingFlags.Static" /> | <see cref=3D"F:System.Reflection.BindingFlags.Ins=
tance" />).</para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"GetTypeArray">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 static class System.Type[] GetTypeArray(class System.Object[] args)" />
      <MemberSignature Language=3D"C#" Value=3D"public static Type[] GetTyp=
eArray(object[] args);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Type[]</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"args" Type=3D"System.Object[]" />
      </Parameters>
      <Docs>
        <summary>
          <para> Returns the types of the objects in the specified array.
      </para>
        </summary>
        <param name=3D"args">An array of objects whose types are to be retu=
rned. </param>
        <returns>
          <para> An array of <see cref=3D"T:System.Type" /> objects represe=
nting the types of the corresponding
   elements in <paramref name=3D"args" />. If a requested type is not publi=
c
   and the caller does not have permission to
   reflect non-public objects outside the current assembly, the correspondi=
ng element in the
   array returned by this method will be <see langword=3D"null" />.
   </para>
        </returns>
        <exception cref=3D"T:System.ArgumentNullException">
          <paramref name=3D"args" /> is <see langword=3D"null" />. </except=
ion>
        <exception cref=3D"T:System.Reflection.TargetInvocationException">T=
he type initializers were invoked and at least one threw an exception. </ex=
ception>
        <permission cref=3D"T:System.Security.Permissions.ReflectionPermiss=
ion">Requires permission to retrieve information on non-public members of t=
ypes in loaded assemblies. See <see cref=3D"F:System.Security.Permissions.R=
eflectionPermissionFlag.TypeInformation" />.</permission>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"Equals">
      <MemberSignature Language=3D"ILASM" Value=3D".method public hidebysig=
 instance bool Equals(class System.Type o)" />
      <MemberSignature Language=3D"C#" Value=3D"public bool Equals(Type o);=
" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name=3D"o" Type=3D"System.Type" />
      </Parameters>
      <Docs>
        <summary>
          <para>Determines if the underlying system type of the current <se=
e cref=3D"T:System.Type" /> is the same as the
   underlying system type of the specified <see cref=3D"T:System.Type" />.<=
/para>
        </summary>
        <param name=3D"o">The <see cref=3D"T:System.Type" /> whose underlyi=
ng system type is to be compared with the underlying system type of the cur=
rent <see cref=3D"T:System.Type" />.</param>
        <returns>
          <para>
            <see langword=3D"true" /> if the underlying system type of <par=
amref name=3D"o" /> is the same
   as the underlying system type of the current <see cref=3D"T:System.Type"=
 />; otherwise, <see langword=3D"false" />.</para>
        </returns>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D".ctor">
      <MemberSignature Language=3D"ILASM" Value=3D"family rtspecialname spe=
cialname instance void .ctor()" />
      <MemberSignature Language=3D"C#" Value=3D"protected Type();" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters />
      <Docs>
        <summary>
          <para> Constructs a new instance of the <see cref=3D"T:System.Typ=
e" /> class.
   </para>
        </summary>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"DeclaringType">
      <MemberSignature Language=3D"ILASM" Value=3D".property class System.T=
ype DeclaringType { public hidebysig virtual specialname class System.Type =
get_DeclaringType() }" />
      <MemberSignature Language=3D"C#" Value=3D"public override Type Declar=
ingType { get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Type</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Gets the type that declares the type represented by the cur=
rent instance.</para>
        </summary>
        <value>
          <para>The <see cref=3D"T:System.Type" /> object for
   the class that declares the type represented by the current
   instance. If the type is a nested type, this property returns the enclos=
ing type; otherwise, returns
   the current instance.</para>
        </value>
        <remarks>
          <para>
            <block subset=3D"none" type=3D"note">This property overrides <s=
ee cref=3D"P:System.Reflection.MemberInfo.DeclaringType" />.</block>
          </para>
        </remarks>
        <example>
          <para>The following example demonstrates the
   <see cref=3D"P:System.Type.DeclaringType" /> property. </para>
          <code lang=3D"C#">using System;
using System.Reflection;

public abstract class DeclaringTypeTest{
   public abstract class MyClassA {
      public abstract int m();=20
   }
   public abstract class MyClassB : MyClassA {
   }
   public static void Main() {=20
      Console.WriteLine("Declaring type of m is {0}",
         typeof(MyClassB).GetMethod("m").DeclaringType);
   }
}
   </code>
          <para> The output is </para>
          <c>
            <para>Declaring type of m is DeclaringTypeTest+MyClassA </para>
          </c>
        </example>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"ReflectedType">
      <MemberSignature Language=3D"ILASM" Value=3D".property class System.T=
ype ReflectedType { public hidebysig virtual specialname class System.Type =
get_ReflectedType() }" />
      <MemberSignature Language=3D"C#" Value=3D"public override Type Reflec=
tedType { get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Type</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Gets the type that was used to obtain the current
      instance.</para>
        </summary>
        <value>
          <para>The <see langword=3D"Type" /> object
   through which the current instance was obtained.</para>
        </value>
        <remarks>
          <para>This property is read-only.</para>
          <para>
            <block subset=3D"none" type=3D"note">This property
      overrides <see cref=3D"P:System.Reflection.MemberInfo.ReflectedType" =
/>.</block>
          </para>
        </remarks>
        <example>
          <para>The following example demonstrates the <see cref=3D"P:Syste=
m.Type.ReflectedType" /> property. Although the method <paramref name=3D"m"=
 /> is
   declared in <see langword=3D"MyClassA" />, its reflected type is obtaine=
d from
<see langword=3D"MyClassB" /> .</para>
          <code lang=3D"C#">using System;
using System.Reflection;
public abstract class ReflectedTypeTest {
    public abstract class MyClassA {
        public abstract int m();
    }
    public abstract class MyClassB : MyClassA {
    }
    public static void Main(string[] args) {
        Console.WriteLine("Reflected type of m is {0}",
            typeof(MyClassB).GetMethod("m").ReflectedType);
    }
}
</code>
          <para>The output is </para>
          <c>
            <para>Reflected type of m is ReflectedTypeTest+MyClassB</para>
          </c>
        </example>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"DefaultBinder">
      <MemberSignature Language=3D"ILASM" Value=3D".property class System.R=
eflection.Binder DefaultBinder { public hidebysig static specialname class =
System.Reflection.Binder get_DefaultBinder() }" />
      <MemberSignature Language=3D"C#" Value=3D"public static Binder Defaul=
tBinder { get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.Binder</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Gets the default binder used by the system.</para>
        </summary>
        <value>
          <para>The default <see cref=3D"T:System.Reflection.Binder" /> use=
d by the system.</para>
        </value>
        <remarks>
          <para>This property is read-only.</para>
          <para>Reflection models the accessibility rules of the common
      type system. For example, if the caller is in the same assembly, the =
caller does
      not need special permissions for internal members. Otherwise, the cal=
ler needs
   <see cref=3D"T:System.Security.Permissions.ReflectionPermission" />
   . This is consistent with lookup of members that
   are protected, private, and so on. </para>
          <para>
            <block subset=3D"none" type=3D"note">The general principle is t=
hat <see cref=3D"M:System.Reflection.Binder.ChangeType(System.Object,System=
.Type,System.Globalization.CultureInfo)" />=20
typically performs only widening coercions,
which never lose data. An example of a widening coercion is coercing a
value that is a 32-bit signed integer to a value that is a 64-bit signed in=
teger.
This is distinguished from a narrowing coercion, which may lose data. An
example of a narrowing coercion is coercing a 64-bit signed integer to a 32=
-bit
signed integer. </block>
          </para>
          <para>The following table lists the coercions performed by the de=
fault binder's implementation of
<see langword=3D"ChangeType" />.</para>
          <list type=3D"table">
            <listheader>
              <term>Source Type</term>
              <description>Target Type</description>
            </listheader>
            <item>
              <term> Any type</term>
              <description>Its base type.</description>
            </item>
            <item>
              <term> Any type</term>
              <description>The interface it implements.</description>
            </item>
            <item>
              <term> Char</term>
              <description>Unt16, UInt32, Int32, UInt64, Int64, Single, Dou=
ble</description>
            </item>
            <item>
              <term> Byte</term>
              <description>Char, Unt16, Int16, UInt32, Int32, UInt64, Int64=
, Single, Double</description>
            </item>
            <item>
              <term> SByte</term>
              <description>Int16, Int32, Int64, Single, Double</description=
>
            </item>
            <item>
              <term> UInt16</term>
              <description>UInt32, Int32, UInt64, Int64, Single, Double</de=
scription>
            </item>
            <item>
              <term> Int16</term>
              <description>Int32, Int64, Single, Double</description>
            </item>
            <item>
              <term> UInt32</term>
              <description>UInt64, Int64, Single, Double</description>
            </item>
            <item>
              <term> Int32</term>
              <description>Int64, Single, Double</description>
            </item>
            <item>
              <term> UInt64</term>
              <description>Single, Double</description>
            </item>
            <item>
              <term> Int64</term>
              <description>Single, Double</description>
            </item>
            <item>
              <term> Single</term>
              <description>Double</description>
            </item>
            <item>
              <term> Non-reference</term>
              <description>By-reference.</description>
            </item>
          </list>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"Module">
      <MemberSignature Language=3D"ILASM" Value=3D".property class System.R=
eflection.Module Module { public hidebysig virtual abstract specialname cla=
ss System.Reflection.Module get_Module() }" />
      <MemberSignature Language=3D"C#" Value=3D"public abstract Module Modu=
le { get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.Module</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para> Gets the module in which the current <see cref=3D"T:System=
.Type" /> is defined.</para>
        </summary>
        <value>
          <para>A <see cref=3D"T:System.Reflection.Module" /> that reflects=
 the module in which the current <see cref=3D"T:System.Type" /> is defined.=
</para>
        </value>
        <remarks>
          <para>
            <block subset=3D"none" type=3D"behaviors">This property is
      read-only.</block>
          </para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"Assembly">
      <MemberSignature Language=3D"ILASM" Value=3D".property class System.R=
eflection.Assembly Assembly { public hidebysig virtual abstract specialname=
 class System.Reflection.Assembly get_Assembly() }" />
      <MemberSignature Language=3D"C#" Value=3D"public abstract Assembly As=
sembly { get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.Assembly</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Gets the <see cref=3D"T:System.Reflection.Assembly" /> that=
 the type is declared in. </para>
        </summary>
        <value>
          <para>A <see cref=3D"T:System.Reflection.Assembly" /> instance th=
at describes assembly containing the current type.</para>
        </value>
        <remarks>
          <para>
            <block subset=3D"none" type=3D"behaviors">This property is read=
-only.</block>
          </para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>RuntimeInfrastructure</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"TypeHandle">
      <MemberSignature Language=3D"ILASM" Value=3D".property valuetype Syst=
em.RuntimeTypeHandle TypeHandle { public hidebysig virtual abstract special=
name valuetype System.RuntimeTypeHandle get_TypeHandle() }" />
      <MemberSignature Language=3D"C#" Value=3D"public abstract RuntimeType=
Handle TypeHandle { get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.RuntimeTypeHandle</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Gets the handle for the current <see cref=3D"T:System.Type"=
 />.</para>
        </summary>
        <value>
          <para>The <see cref=3D"T:System.RuntimeTypeHandle" /> for the cur=
rent <see cref=3D"T:System.Type" />.</para>
        </value>
        <remarks>
          <para>This property is read-only.</para>
          <para>The <see cref=3D"T:System.RuntimeTypeHandle" /> encapsulate=
s a pointer to an internal data structure that represents the type. This
   handle is unique during the process lifetime. The handle is valid only i=
n
   the application domain in which it was obtained.</para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>RuntimeInfrastructure</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"FullName">
      <MemberSignature Language=3D"ILASM" Value=3D".property string FullNam=
e { public hidebysig virtual abstract specialname string get_FullName() }" =
/>
      <MemberSignature Language=3D"C#" Value=3D"public abstract string Full=
Name { get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Gets the fully qualified name of the type represented by=20
      the current instance.</para>
        </summary>
        <value>
          <para>A <see cref=3D"T:System.String" /> containing the fully qua=
lified name of the <see cref=3D"T:System.Type" />.</para>
        </value>
        <remarks>
          <para>
            <block subset=3D"none" type=3D"note">For example, the
      fully qualified name of the C# string type is "System.String".</block=
>
          </para>
          <para>
            <block subset=3D"none" type=3D"behaviors">This property is
      read-only.</block>
          </para>
        </remarks>
        <example>
          <para>The following example demonstrates using the <see cref=3D"P=
:System.Type.FullName" />
property.</para>
          <code lang=3D"C#">using System;
class TestType {
 public static void Main() {
 Type t =3D typeof(Array);
 Console.WriteLine("Full name of Array type is {0}",t.FullName);
 }
}
</code>
          <para>The output is</para>
          <para>
            <c>Full name of
   Array type is System.Array</c>
          </para>
        </example>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName=3D"Namespace">
      <MemberSignature Language=3D"ILASM" Value=3D".property string Namespa=
ce { public hidebysig virtual abstract specialname string get_Namespace() }=
" />
      <MemberSignature Language=3D"C#" Value=3D"public abstract string Name=
space { get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Gets the namespace of the <see cref=3D"T:System.Type" />.</=
para>
        </summary>
        <value>
          <para>A <see cref=3D"T:System.String" /> containing the namespace=
 of the current <see cref=3D"T:System.Type" />.</para>
        </value>
        <remarks>
          <para>
            <block subset=3D"none" type=3D"note">A namespace is a=20
      logical design-time naming convenience, used mainly to define scope i=
n an
      application and organize classes and other types in a hierarchical st=
ructure.
      From the viewpoint of the system, there are no namespaces.</block>
          </para>
          <para>
            <block subset=3D"none" type=3D"behaviors">This property is=20
      read-only.</block>
          </para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"AssemblyQualifiedName">
      <MemberSignature Language=3D"ILASM" Value=3D".property string Assembl=
yQualifiedName { public hidebysig virtual abstract specialname string get_A=
ssemblyQualifiedName() }" />
      <MemberSignature Language=3D"C#" Value=3D"public abstract string Asse=
mblyQualifiedName { get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Gets the fully qualified name of the type represented by=20
      the current instance
      including the name of the assembly from which the <see cref=3D"T:Syst=
em.Type" /> was loaded.</para>
        </summary>
        <value>
          <para>A <see cref=3D"T:System.String" /> containing the=20
   fully qualified name of the type represented by the current instance,
   including the name of the assembly from which the <see cref=3D"T:System.=
Type" /> was loaded.</para>
        </value>
        <remarks>
          <block subset=3D"none" type=3D"behaviors">
            <para>=20
         This property is read-only.</para>
            <para>Compilers emit the simple name of a nested class, and ref=
lection constructs a=20
         mangled name when queried, in accordance with the following conven=
tions.</para>
            <list type=3D"table">
              <listheader>
                <term>Delimiter</term>
                <description>Meaning</description>
              </listheader>
              <item>
                <term> Backslash (\)</term>
                <description>Escape character.</description>
              </item>
              <item>
                <term> Comma (,)</term>
                <description>Precedes the Assembly name.</description>
              </item>
              <item>
                <term> Plus sign (+)</term>
                <description>Precedes a nested class.</description>
              </item>
              <item>
                <term> Period (.)</term>
                <description>Denotes namespace identifiers. </description>
              </item>
            </list>
            <block subset=3D"none" type=3D"note">
              <para>For example, the fully qualified name for a class might=
 look like this: </para>
              <para>TopNamespace.SubNameSpace.ContainingClass+NestedClass,M=
yAssembly </para>
              <para>If the namespace were TopNamespace.Sub+Namespace, then =
the string would
            have to precede the plus sign (+) with an escape character (\) =
to prevent
            it from being interpreted as a nesting separator. Reflection
            emits this string as follows:</para>
              <para>TopNamespace.Sub\+Namespace.ContainingClass+NestedClass=
,MyAssembly</para>
              <para>A "++" becomes "\+\+", and a "\" becomes "\\".</para>
            </block>
            <para>Type names are permitted to include trailing characters t=
hat denote
         additional information about the type, such as whether the type is=
 a reference
         type, a pointer type or an array type. To retrieve the type name w=
ithout these
         trailing characters, use <c>t.GetElementType().ToString()</c>, whe=
re <paramref name=3D"t" />
      is the type.</para>
            <para>Spaces are significant in all type name components except=
 the assembly
      name. In the assembly name, spaces before the ',' separator are signi=
ficant, but
      spaces after the ',' separator are ignored.</para>
          </block>
          <block subset=3D"none" type=3D"usage">
            <para>The name returned by this method can be persisted and lat=
er used to load the <see cref=3D"T:System.Type" />.
   To search for and load a <see cref=3D"T:System.Type" />, use <see cref=
=3D"M:System.Type.GetType(System.String,System.Boolean,System.Boolean)" /> =
either with the type name only or with
   the assembly qualified type name. <see cref=3D"M:System.Type.GetType(Sys=
tem.String,System.Boolean,System.Boolean)" /> with the type name only will =
look for
   the <see cref=3D"T:System.Type" />
   in the caller's assembly and then in the System assembly. <see cref=3D"M=
:System.Type.GetType(System.String,System.Boolean,System.Boolean)" /> with =
the
   assembly qualified type name will look for the <see cref=3D"T:System.Typ=
e" /> in any assembly.</para>
          </block>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"BaseType">
      <MemberSignature Language=3D"ILASM" Value=3D".property class System.T=
ype BaseType { public hidebysig virtual abstract specialname class System.T=
ype get_BaseType() }" />
      <MemberSignature Language=3D"C#" Value=3D"public abstract Type BaseTy=
pe { get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Type</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Gets the base <see cref=3D"T:System.Type" /> of the current=
 <see cref=3D"T:System.Type" /> .</para>
        </summary>
        <value>
          <para>A <see cref=3D"T:System.Type" /> object=20
   representing the type from which the current <see cref=3D"T:System.Type"=
 /> directly inherits, or
<see langword=3D"null" />=20
if the current <see cref=3D"T:System.Type" /> represents the <see cref=3D"T=
:System.Object" /> class.</para>
        </value>
        <remarks>
          <para>
            <block subset=3D"none" type=3D"behaviors"> This property is rea=
d-only.</block>
          </para>
        </remarks>
        <example>
          <para>The following example demonstrates using the <see cref=3D"P=
:System.Type.BaseType" />
property.</para>
          <code lang=3D"C#">using System;
class TestType {
 public static void Main() {
 Type t =3D typeof(int);
 Console.WriteLine("{0} inherits from {1}", t,t.BaseType);
 }
}
</code>
          <para>The output is</para>
          <para>
            <c>System.Int32
   inherits from System.ValueType</c>
          </para>
        </example>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName=3D"TypeInitializer">
      <MemberSignature Language=3D"ILASM" Value=3D".property class System.R=
eflection.ConstructorInfo TypeInitializer { public hidebysig specialname in=
stance class System.Reflection.ConstructorInfo get_TypeInitializer() }" />
      <MemberSignature Language=3D"C#" Value=3D"public ConstructorInfo Type=
Initializer { get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.ConstructorInfo</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para> Gets the initializer for the<see langword=3D" " />type
   represented by the current instance.</para>
        </summary>
        <value>
          <para>A <see cref=3D"T:System.Reflection.ConstructorInfo" /> cont=
aining the name of the static
   constructor for the type represented by the current instance</para>
        </value>
        <remarks>
          <para>This property is read-only.</para>
          <para>
            <block subset=3D"none" type=3D"note">Type initializers are avai=
lable through <see cref=3D"M:System.Type.GetMember(System.String)" />,
<see cref=3D"M:System.Type.GetMembers" />, <see cref=3D"M:System.Type.FindM=
embers(System.Reflection.MemberTypes,System.Reflection.BindingFlags,System.=
Reflection.MemberFilter,System.Object)" />, and <see cref=3D"M:System.Type.=
GetConstructors" />.</block>
          </para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"Attributes">
      <MemberSignature Language=3D"ILASM" Value=3D".property valuetype Syst=
em.Reflection.TypeAttributes Attributes { public hidebysig specialname inst=
ance valuetype System.Reflection.TypeAttributes get_Attributes() }" />
      <MemberSignature Language=3D"C#" Value=3D"public TypeAttributes Attri=
butes { get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Reflection.TypeAttributes</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para> Gets the attributes associated with the type represented=20
      by the current instance.</para>
        </summary>
        <value>
          <para>A <see cref=3D"T:System.Reflection.TypeAttributes" /> objec=
t representing the attribute set of the <see cref=3D"T:System.Type" />.</pa=
ra>
        </value>
        <remarks>
          <para>This property is read-only.</para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"IsNotPublic">
      <MemberSignature Language=3D"ILASM" Value=3D".property bool IsNotPubl=
ic { public hidebysig specialname instance bool get_IsNotPublic() }" />
      <MemberSignature Language=3D"C#" Value=3D"public bool IsNotPublic { g=
et; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para> Gets a <see cref=3D"T:System.Boolean" /> value indicating =
whether the top-level <see cref=3D"T:System.Type" /> is not declared public=
.</para>
        </summary>
        <value>
          <para>
            <see langword=3D"true" /> if the
   top-level <see cref=3D"T:System.Type" /> is not declared public; otherwi=
se, <see langword=3D"false" />. </para>
        </value>
        <remarks>
          <para>This property is read-only.</para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"IsPublic">
      <MemberSignature Language=3D"ILASM" Value=3D".property bool IsPublic =
{ public hidebysig specialname instance bool get_IsPublic() }" />
      <MemberSignature Language=3D"C#" Value=3D"public bool IsPublic { get;=
 }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para> Gets a <see cref=3D"T:System.Boolean" /> value indicating =
whether the top-level <see cref=3D"T:System.Type" /> is declared public.</p=
ara>
        </summary>
        <value>
          <para>
            <see langword=3D"true" /> if the top-level <see cref=3D"T:Syste=
m.Type" /> is declared public; otherwise, <see langword=3D"false" />.</para=
>
        </value>
        <remarks>
          <para>This property is read-only.</para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"IsNestedPublic">
      <MemberSignature Language=3D"ILASM" Value=3D".property bool IsNestedP=
ublic { public hidebysig specialname instance bool get_IsNestedPublic() }" =
/>
      <MemberSignature Language=3D"C#" Value=3D"public bool IsNestedPublic =
{ get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para> Gets a <see cref=3D"T:System.Boolean" /> value indicating=20
   whether the current <see cref=3D"T:System.Type" /> is a public nested cl=
ass.</para>
        </summary>
        <value>
          <para>
            <see langword=3D"true" /> if
   the class is nested and declared public; otherwise, <see langword=3D"fal=
se" />.</para>
        </value>
        <remarks>
          <para>This property is read-only.</para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"IsNestedPrivate">
      <MemberSignature Language=3D"ILASM" Value=3D".property bool IsNestedP=
rivate { public hidebysig specialname instance bool get_IsNestedPrivate() }=
" />
      <MemberSignature Language=3D"C#" Value=3D"public bool IsNestedPrivate=
 { get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para> Gets a <see cref=3D"T:System.Boolean" /> value indicating =
whether the current <see cref=3D"T:System.Type" /> is nested and declared p=
rivate.</para>
        </summary>
        <value>
          <para>
            <see langword=3D"true" /> if the <see cref=3D"T:System.Type" />=
 is nested and declared private; otherwise, <see langword=3D"false" />.</pa=
ra>
        </value>
        <remarks>
          <para>This property is read-only.</para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"IsNestedFamily">
      <MemberSignature Language=3D"ILASM" Value=3D".property bool IsNestedF=
amily { public hidebysig specialname instance bool get_IsNestedFamily() }" =
/>
      <MemberSignature Language=3D"C#" Value=3D"public bool IsNestedFamily =
{ get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para> Gets a <see cref=3D"T:System.Boolean" /> value indicating =
whether the current <see cref=3D"T:System.Type" /> is nested and visible on=
ly within its
   own family.</para>
        </summary>
        <value>
          <para>
            <see langword=3D"true" /> if the <see cref=3D"T:System.Type" />=
 is nested
   and visible only within its own family; otherwise, <see langword=3D"fals=
e" />.</para>
        </value>
        <remarks>
          <para> This property is read-only.</para>
          <para>A <see cref=3D"T:System.Type" /> object's family is defined=
 as all objects of the exact
   same <see cref=3D"T:System.Type" /> and of its subclasses.</para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"IsNestedAssembly">
      <MemberSignature Language=3D"ILASM" Value=3D".property bool IsNestedA=
ssembly { public hidebysig specialname instance bool get_IsNestedAssembly()=
 }" />
      <MemberSignature Language=3D"C#" Value=3D"public bool IsNestedAssembl=
y { get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Gets a <see cref=3D"T:System.Boolean" /> value indicating w=
hether the current <see cref=3D"T:System.Type" /> is nested and visible onl=
y within its own assembly.</para>
        </summary>
        <value>
          <para>
            <see langword=3D"true" /> if the <see cref=3D"T:System.Type" />=
 is nested and visible only within its own assembly; otherwise, <see langwo=
rd=3D"false" />.</para>
        </value>
        <remarks>
          <para> This property is read-only.</para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"IsNestedFamANDAssem">
      <MemberSignature Language=3D"ILASM" Value=3D".property bool IsNestedF=
amANDAssem { public hidebysig specialname instance bool get_IsNestedFamANDA=
ssem() }" />
      <MemberSignature Language=3D"C#" Value=3D"public bool IsNestedFamANDA=
ssem { get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para> Gets a <see cref=3D"T:System.Boolean" /> value indicating =
whether the current <see cref=3D"T:System.Type" /> is nested and visible on=
ly to classes that belong to both its own family and
   its own assembly.</para>
        </summary>
        <value>
          <para>
            <see langword=3D"true" /> if the <see cref=3D"T:System.Type" />=
 is nested
   and visible only to classes that belong to both its own family and its o=
wn assembly; otherwise, <see langword=3D"false" />.</para>
        </value>
        <remarks>
          <para> This property is read-only.</para>
          <para>A <see cref=3D"T:System.Type" /> object's family is defined=
 as all objects of the exact
   same <see cref=3D"T:System.Type" /> and of its subclasses.</para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"IsNestedFamORAssem">
      <MemberSignature Language=3D"ILASM" Value=3D".property bool IsNestedF=
amORAssem { public hidebysig specialname instance bool get_IsNestedFamORAss=
em() }" />
      <MemberSignature Language=3D"C#" Value=3D"public bool IsNestedFamORAs=
sem { get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para> Gets a <see cref=3D"T:System.Boolean" /> value indicating =
whether the current <see cref=3D"T:System.Type" /> is nested and visible on=
ly to classes that belong to either its
   own family or to its own assembly.</para>
        </summary>
        <value>
          <para>
            <see langword=3D"true" /> if the <see cref=3D"T:System.Type" />=
 is nested
   and visible only to classes that belong to its own family or to its own =
assembly; otherwise, <see langword=3D"false" />.</para>
        </value>
        <remarks>
          <para> This property is read-only.</para>
          <para>A <see cref=3D"T:System.Type" /> object's family is defined=
 as all objects of the exact
   same <see cref=3D"T:System.Type" /> and of its subclasses.</para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"IsAutoLayout">
      <MemberSignature Language=3D"ILASM" Value=3D".property bool IsAutoLay=
out { public hidebysig specialname instance bool get_IsAutoLayout() }" />
      <MemberSignature Language=3D"C#" Value=3D"public bool IsAutoLayout { =
get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para> Gets a <see cref=3D"T:System.Boolean" /> value indicating
   whether the type layout attribute <see cref=3D"F:System.Reflection.TypeA=
ttributes.AutoLayout" /> is specified for the <see cref=3D"T:System.Type" /=
>.</para>
        </summary>
        <value>
          <para>
            <see langword=3D"true" /> if the type
   layout attribute <see cref=3D"F:System.Reflection.TypeAttributes.AutoLay=
out" /> is specified for the current <see cref=3D"T:System.Type" />; otherw=
ise, <see langword=3D"false" />.</para>
        </value>
        <remarks>
          <para>This property is read-only.</para>
          <block subset=3D"none" type=3D"note">
            <para>The <see cref=3D"F:System.Reflection.TypeAttributes.AutoL=
ayout" /> attribute specifies that the system
      selects the layout the objects of the type. Types marked with this at=
tribute indicate that the
      system will choose the appropriate way to lay out the type; any layou=
t information
      that may have been specified is ignored. </para>
          </block>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"IsLayoutSequential">
      <MemberSignature Language=3D"ILASM" Value=3D".property bool IsLayoutS=
equential { public hidebysig specialname instance bool get_IsLayoutSequenti=
al() }" />
      <MemberSignature Language=3D"C#" Value=3D"public bool IsLayoutSequent=
ial { get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para> Gets a <see cref=3D"T:System.Boolean" /> value indicating
   whether the type layout attribute <see cref=3D"F:System.Reflection.TypeA=
ttributes.SequentialLayout" /> is specified for the <see cref=3D"T:System.T=
ype" />.</para>
        </summary>
        <value>
          <para>
            <see langword=3D"true" /> if the type layout attribute
<see cref=3D"F:System.Reflection.TypeAttributes.SequentialLayout" /> is spe=
cified for the current=20
<see cref=3D"T:System.Type" />; otherwise,=20
<see langword=3D"false" />.</para>
        </value>
        <remarks>
          <para>This property is read-only.</para>
          <block subset=3D"none" type=3D"note">
            <para> The <see cref=3D"F:System.Reflection.TypeAttributes.Sequ=
entialLayout" /> attribute is used
      to indicate that
      the system is to preserve field order as emitted, but otherwise the s=
pecific offsets are calculated based on the type
      of the field; these may be shifted by explicit offset, padding, or al=
ignment information.</para>
          </block>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"IsExplicitLayout">
      <MemberSignature Language=3D"ILASM" Value=3D".property bool IsExplici=
tLayout { public hidebysig specialname instance bool get_IsExplicitLayout()=
 }" />
      <MemberSignature Language=3D"C#" Value=3D"public bool IsExplicitLayou=
t { get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para> Gets a <see cref=3D"T:System.Boolean" /> value indicating
   whether the type layout attribute <see cref=3D"F:System.Reflection.TypeA=
ttributes.ExplicitLayout" /> is specified for the <see cref=3D"T:System.Typ=
e" />.</para>
        </summary>
        <value>
          <para>
            <see langword=3D"true" /> if the type layout attribute <see cre=
f=3D"F:System.Reflection.TypeAttributes.ExplicitLayout" /> is specified for=
 the current <see cref=3D"T:System.Type" />; otherwise,
<see langword=3D"false" />.</para>
        </value>
        <remarks>
          <para>This property is read-only.</para>
          <block subset=3D"none" type=3D"note">
            <para>Types marked with the <see cref=3D"F:System.Reflection.Ty=
peAttributes.ExplicitLayout" /> attribute cause
      the system to ignore field sequence and to use the explicit layout ru=
les provided,
      in the form of field offsets, overall class size and alignment. </par=
a>
          </block>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"IsClass">
      <MemberSignature Language=3D"ILASM" Value=3D".property bool IsClass {=
 public hidebysig specialname instance bool get_IsClass() }" />
      <MemberSignature Language=3D"C#" Value=3D"public bool IsClass { get; =
}" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para> Gets a <see cref=3D"T:System.Boolean" /> value that indica=
tes whether the current <see cref=3D"T:System.Type" /> represents a class.<=
/para>
        </summary>
        <value>
          <para>
            <see langword=3D"true" /> if the current <see cref=3D"T:System.=
Type" /> represents a class;
   otherwise <see langword=3D"false" />. </para>
        </value>
        <remarks>
          <para>This property is read-only.</para>
          <para>Note that this property returns <see langword=3D"true" /> f=
or
<see cref=3D"T:System.Type" /> instances=20
   representing <see cref=3D"T:System.Enum" /> and <see cref=3D"T:System.Va=
lueType" /> .</para>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName=3D"IsInterface">
      <MemberSignature Language=3D"ILASM" Value=3D".property bool IsInterfa=
ce { public hidebysig specialname instance bool get_IsInterface() }" />
      <MemberSignature Language=3D"C#" Value=3D"public bool IsInterface { g=
et; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Gets a <see cref=3D"T:System.Boolean" /> value that indicat=
es whether the  current <see cref=3D"T:System.Type" /> represents an interf=
ace.</para>
        </summary>
        <value>
          <para>
            <see langword=3D"true" /> if the current <see cref=3D"T:System.=
Type" />  represents an
   interface; otherwise <see langword=3D"false" />. </para>
        </value>
        <remarks>
          <para>This property is read-only.</para>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName=3D"IsValueType">
      <MemberSignature Language=3D"ILASM" Value=3D".property bool IsValueTy=
pe { public hidebysig specialname instance bool get_IsValueType() }" />
      <MemberSignature Language=3D"C#" Value=3D"public bool IsValueType { g=
et; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Gets a <see cref=3D"T:System.Boolean" /> value that indicat=
es whether the current <see cref=3D"T:System.Type" /> represents a value ty=
pe.</para>
        </summary>
        <value>
          <para>
            <see langword=3D"true" /> if the current <see cref=3D"T:System.=
Type" /> represents a value
   type (structure); otherwise <see langword=3D"false" />. </para>
        </value>
        <remarks>
          <para>This property is read-only.</para>
          <para>This property returns true for enumerations, but not for
      the <see cref=3D"T:System.Enum" /> type
      itself, which is a class. <block subset=3D"none" type=3D"note">For an=
 example
      that demonstrates this behavior, see <see cref=3D"P:System.Type.IsEnu=
m" />
      .</block></para>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName=3D"IsAbstract">
      <MemberSignature Language=3D"ILASM" Value=3D".property bool IsAbstrac=
t { public hidebysig specialname instance bool get_IsAbstract() }" />
      <MemberSignature Language=3D"C#" Value=3D"public bool IsAbstract { ge=
t; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para> Gets a <see cref=3D"T:System.Boolean" /> value indicating=20
   whether the type represented by the current instance is abstract and is =
required to be overridden.</para>
        </summary>
        <value>
          <para>
            <see langword=3D"true" /> if the <see cref=3D"T:System.Type" />=
 is abstract; otherwise, <see langword=3D"false" />.</para>
        </value>
        <remarks>
          <para>This property is read-only.</para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"IsSealed">
      <MemberSignature Language=3D"ILASM" Value=3D".property bool IsSealed =
{ public hidebysig specialname instance bool get_IsSealed() }" />
      <MemberSignature Language=3D"C#" Value=3D"public bool IsSealed { get;=
 }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para> Gets a <see cref=3D"T:System.Boolean" /> value indicating =
whether the current <see cref=3D"T:System.Type" /> is declared sealed.</par=
a>
        </summary>
        <value>
          <para>
            <see langword=3D"true" /> if the <see cref=3D"T:System.Type" />=
 is declared sealed; otherwise, <see langword=3D"false" />. </para>
        </value>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"IsEnum">
      <MemberSignature Language=3D"ILASM" Value=3D".property bool IsEnum { =
public hidebysig specialname instance bool get_IsEnum() }" />
      <MemberSignature Language=3D"C#" Value=3D"public bool IsEnum { get; }=
" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para> Gets a <see cref=3D"T:System.Boolean" /> value that indica=
tes whether the current <see cref=3D"T:System.Type" /> represents an enumer=
ation.</para>
        </summary>
        <value>
          <para>
            <see langword=3D"true" /> if the current <see cref=3D"T:System.=
Type" /> represents an
   enumeration; otherwise <see langword=3D"false" />. </para>
        </value>
        <remarks>
          <para>This property is read-only.</para>
          <para>This property returns <see langword=3D"true" /> for an enum=
eration, but not
   for the <see cref=3D"T:System.Enum" />
   type itself, which is a class.</para>
        </remarks>
        <example>
          <para>The following example demonstrates using the <see cref=3D"P=
:System.Type.IsEnum" />
property.</para>
          <code lang=3D"C#">using System;
public enum Color {
Red, Blue, Green
}
class TestType {
 public static void Main() {
 Type colorType =3D typeof(Color);
 Type enumType =3D typeof(Enum);
 Console.WriteLine("Color is enum ? {0}", colorType.IsEnum);
 Console.WriteLine("Color is valueType? {0}", colorType.IsValueType);
 Console.WriteLine("Enum is enum Type? {0}", enumType.IsEnum);
 Console.WriteLine("Enum is value? {0}", enumType.IsValueType);
 }
}
</code>
          <para>The output is</para>
          <c>
            <para>Color is enum ? True</para>
            <para>Color is valueType? True</para>
            <para>Enum is enum Type? False</para>
            <para>Enum is value? False</para>
          </c>
        </example>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName=3D"IsSpecialName">
      <MemberSignature Language=3D"ILASM" Value=3D".property bool IsSpecial=
Name { public hidebysig specialname instance bool get_IsSpecialName() }" />
      <MemberSignature Language=3D"C#" Value=3D"public bool IsSpecialName {=
 get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para> Gets a <see cref=3D"T:System.Boolean" /> value indicating =
whether the current <see cref=3D"T:System.Type" /> has a name that requires=
 special handling.</para>
        </summary>
        <value>
          <para>
            <see langword=3D"true" /> if the <see cref=3D"T:System.Type" />=
 has a name that requires special handling; otherwise, <see langword=3D"fal=
se" />. </para>
        </value>
        <remarks>
          <para>This property is read-only.</para>
          <para>
            <block subset=3D"none" type=3D"note">Names that begin with or c=
ontain an
      underscore character (_) are examples of type names that
      might require special treatment by some tools. </block>
          </para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"IsImport">
      <MemberSignature Language=3D"ILASM" Value=3D".property bool IsImport =
{ public hidebysig specialname instance bool get_IsImport() }" />
      <MemberSignature Language=3D"C#" Value=3D"public bool IsImport { get;=
 }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para> Gets a <see cref=3D"T:System.Boolean" /> value indicating =
whether the <see cref=3D"T:System.Type" /> was imported from another class.=
</para>
        </summary>
        <value>
          <para>
            <see langword=3D"true" /> if the <see cref=3D"T:System.Type" />=
 was imported from another class; otherwise, <see langword=3D"false" />. </=
para>
        </value>
        <remarks>
          <para>This property is read-only.</para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"IsArray">
      <MemberSignature Language=3D"ILASM" Value=3D".property bool IsArray {=
 public hidebysig specialname instance bool get_IsArray() }" />
      <MemberSignature Language=3D"C#" Value=3D"public bool IsArray { get; =
}" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Gets a <see cref=3D"T:System.Boolean" /> value that indicat=
es whether the current <see cref=3D"T:System.Type" /> represents an array.<=
/para>
        </summary>
        <value>
          <para>
            <see langword=3D"true" /> if the current <see cref=3D"T:System.=
Type" /> represents an
   array; otherwise <see langword=3D"false" />. </para>
        </value>
        <remarks>
          <para>This property is read-only.</para>
          <para>This property returns <see langword=3D"true" /> for an arra=
y of objects, but
   not for the <see cref=3D"T:System.Array" />
   type itself, which is a class.</para>
        </remarks>
        <example>
          <para>The following example demonstrates using the <see cref=3D"P=
:System.Type.IsArray" />
property.</para>
          <code lang=3D"C#">using System;
class TestType {
 public static void Main() {
 int [] array =3D {1,2,3,4};
 Type at =3D typeof(Array);
 Type t =3D array.GetType();
 Console.WriteLine("Type is {0}. IsArray? {1}", at, at.IsArray);
 Console.WriteLine("Type is {0}. IsArray? {1}", t, t.IsArray);
 }
}
</code>
          <para>The output is</para>
          <c>
            <para>Type is System.Array. IsArray? False</para>
            <para>Type is System.Int32[]. IsArray? True</para>
          </c>
        </example>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName=3D"IsByRef">
      <MemberSignature Language=3D"ILASM" Value=3D".property bool IsByRef {=
 public hidebysig specialname instance bool get_IsByRef() }" />
      <MemberSignature Language=3D"C#" Value=3D"public bool IsByRef { get; =
}" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Gets a <see cref=3D"T:System.Boolean" /> value indicating w=
hether the <see cref=3D"T:System.Type" /> is
   passed by reference.</para>
        </summary>
        <value>
          <para>
            <see langword=3D"true" /> if the <see cref=3D"T:System.Type" />=
 is passed by reference; otherwise, <see langword=3D"false" />. </para>
        </value>
        <remarks>
          <para>This property is read-only.</para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"IsPointer">
      <MemberSignature Language=3D"ILASM" Value=3D".property bool IsPointer=
 { public hidebysig specialname instance bool get_IsPointer() }" />
      <MemberSignature Language=3D"C#" Value=3D"public bool IsPointer { get=
; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Gets a <see cref=3D"T:System.Boolean" /> value that indicat=
es whether the current <see cref=3D"T:System.Type" /> represents a pointer.=
</para>
        </summary>
        <value>
          <para>This property is read-only.</para>
          <para>
            <see langword=3D"true" /> if the current <see cref=3D"T:System.=
Type" /> represents a
   pointer; otherwise <see langword=3D"false" />. </para>
        </value>
        <remarks>
          <para>This property is read-only.</para>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName=3D"IsPrimitive">
      <MemberSignature Language=3D"ILASM" Value=3D".property bool IsPrimiti=
ve { public hidebysig specialname instance bool get_IsPrimitive() }" />
      <MemberSignature Language=3D"C#" Value=3D"public bool IsPrimitive { g=
et; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Gets a <see cref=3D"T:System.Boolean" /> value indicating w=
hether the current <see cref=3D"T:System.Type" /> is one of the primitive t=
ypes.</para>
        </summary>
        <value>
          <para>
            <see langword=3D"true" /> if the <see cref=3D"T:System.Type" />=
 is one of the primitive types; otherwise, <see langword=3D"false" />. </pa=
ra>
        </value>
        <remarks>
          <para>This property is read-only.</para>
          <para>The primitive types are <see cref=3D"T:System.Boolean" />, =
<see cref=3D"T:System.Byte" />, <see cref=3D"T:System.SByte" />, <see cref=
=3D"T:System.Int16" />, <see cref=3D"T:System.UInt16" />, <see cref=3D"T:Sy=
stem.Int32" />, <see cref=3D"T:System.UInt32" />, <see cref=3D"T:System.Int=
64" />, <see cref=3D"T:System.UInt64" />, <see cref=3D"T:System.Char" />, <=
see cref=3D"T:System.Double" />, and <see cref=3D"T:System.Single" />.</par=
a>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"HasElementType">
      <MemberSignature Language=3D"ILASM" Value=3D".property bool HasElemen=
tType { public hidebysig specialname instance bool get_HasElementType() }" =
/>
      <MemberSignature Language=3D"C#" Value=3D"public bool HasElementType =
{ get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Gets a <see cref=3D"T:System.Boolean" /> value indicating w=
hether the type represented by the=20
   current instance encompasses or refers
   to another type; that is, whether the current <see cref=3D"T:System.Type=
" /> is an array, a pointer, or is passed by reference.</para>
        </summary>
        <value>
          <para>
            <see langword=3D"true" /> if the <see cref=3D"T:System.Type" />=
 is an array, a pointer, or is passed by reference; otherwise, <see langwor=
d=3D"false" />. </para>
        </value>
        <remarks>
          <para>This property is read-only.</para>
          <para>
            <block subset=3D"none" type=3D"note">For example, <see cref=3D"=
M:System.Type.GetType(System.String,System.Boolean,System.Boolean)" />("<se=
e cref=3D"T:System.Int32" /> []").HasElementType returns
<see langword=3D"true" />, but <see cref=3D"M:System.Type.GetType(System.St=
ring,System.Boolean,System.Boolean)" />("<see cref=3D"T:System.Int32" /> ")=
.HasElementType returns
<see langword=3D"false" />. <see cref=3D"P:System.Type.HasElementType" /> a=
lso returns
<see langword=3D"true" /> for "Int32*" and "Int32&amp;".</block>
          </para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"IsMarshalByRef">
      <MemberSignature Language=3D"ILASM" Value=3D".property bool IsMarshal=
ByRef { public hidebysig specialname instance bool get_IsMarshalByRef() }" =
/>
      <MemberSignature Language=3D"C#" Value=3D"public bool IsMarshalByRef =
{ get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Gets a <see cref=3D"T:System.Boolean" /> value indicating w=
hether the current type is marshaled by reference.</para>
        </summary>
        <value>
          <para>
            <see langword=3D"true" /> if the <see cref=3D"T:System.Type" />=
 is marshaled by reference; otherwise, <see langword=3D"false" />. </para>
        </value>
        <remarks>
          <para>This property is read-only.</para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
    <Member MemberName=3D"UnderlyingSystemType">
      <MemberSignature Language=3D"ILASM" Value=3D".property class System.T=
ype UnderlyingSystemType { public hidebysig virtual abstract specialname cl=
ass System.Type get_UnderlyingSystemType() }" />
      <MemberSignature Language=3D"C#" Value=3D"public abstract Type Underl=
yingSystemType { get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Type</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para> Returns the system-supplied type
      that represents the current type.</para>
        </summary>
        <value>
          <para>The underlying system type for the <see cref=3D"T:System.Ty=
pe" />.</para>
        </value>
        <remarks>
          <para>This property is read-only.</para>
          <para>
            <block subset=3D"none" type=3D"behaviors">As described=20
      above.</block>
          </para>
        </remarks>
      </Docs>
      <Excluded>1</Excluded>
      <ExcludedLibrary>Reflection</ExcludedLibrary>
    </Member>
  </Members>
  <TypeExcluded>0</TypeExcluded>
</Type>
--=-93fHrr0xP5IDF4e1jqbG--