Here is a very, very, VERY basic start.  Don't expect much.  It's a
super quick demo that shows a little of what's possible.

If you tell me more about what you want to end up with, I can fill this
in.  Especially, if you tell me how you want to store the files, I can
modify it to generate the correct links.

My XSLT is somewhat green so suggestions are appreciated.

    - Scott



On Thu, 2002-10-10 at 19:15, Miguel de Icaza wrote:
> 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.
> 
> 
> ----
> 

> <Type Name="Type" FullName="System.Type" FullNameSP="System_Type">
>   <TypeSignature Language="ILASM" Value=".class public abstract serializable Type 
>extends System.Object" />
>   <TypeSignature Language="C#" Value="public abstract class Type : Object" />
>   <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="T:System.Type" /> class is abstract, as is the <see 
>cref="T:System.Reflection.MemberInfo" />
> class and its subclasses <see cref="T:System.Reflection.FieldInfo" />, <see 
>cref="T:System.Reflection.PropertyInfo" />, <see 
>cref="T:System.Reflection.MethodBase" />,
> and <see cref="T:System.Reflection.EventInfo" />. <see 
>cref="T:System.Reflection.ConstructorInfo" /> and <see 
>cref="T:System.Reflection.MethodInfo" />
> are subclasses of <see cref="T:System.Reflection.MethodBase" />. The runtime
> provides non-public implementations of these classes. <block subset="none" 
>type="note"> For example, <see 
>cref="M:System.Type.GetMethod(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[])"
> /> is typed
> as returning a <see cref="T:System.Reflection.MethodInfo" /> object. The
> returned object is actually an instance of the non-public runtime type that
> implements <see cref="T:System.Reflection.MethodInfo" /> .</block></para>
>       <para>A conforming CLI program which is written to run on only the Kernel 
>profile 
>    cannot subclass <see cref="T:System.Type" />. <block subset="none" type="note"> 
>This only applies
>    to conforming programs not conforming implementations.</block></para>
>       <para> A <see cref="T:System.Type" /> object that represents a type is unique; 
>that is, two
> <see cref="T:System.Type" /> object 
> references refer to the same object if and only if they represent the same type.
> This allows for comparison of <see cref="T:System.Type" />
> objects using reference
> equality.</para>
>       <block subset="none" type="note">
>         <para> An instance of <see cref="T:System.Type" />
> can represent any one of the following
> types:</para>
>         <list type="bullet">
>           <item>
>             <term>
>       
>       Classes</term>
>           </item>
>           <item>
>             <term>
>       
>       Value types</term>
>           </item>
>           <item>
>             <term>
>       
>       Arrays</term>
>           </item>
>           <item>
>             <term>
>       
>       Interfaces</term>
>           </item>
>           <item>
>             <term>
>       
>       Pointers</term>
>           </item>
>           <item>
>             <term>
>       
>       Enumerations</term>
>           </item>
>         </list>
>         <para>The following table shows what members of a base class are returned by 
>the
>    methods that return members of types, such as <see 
>cref="M:System.Type.GetConstructor(System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[])"
> /> and
> <see 
>cref="M:System.Type.GetMethod(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[])"
> />.</para>
>         <para>
>           <list type="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.</description>
>             </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-signature. 
>If a
>    property has both a get and a set accessor in the base class, but the derived
>    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. </para>
>       </block>
>     </remarks>
>   </Docs>
>   <Base>
>     <BaseTypeName>System.Object</BaseTypeName>
>     <ExcludedBaseTypeName>System.Reflection.MemberInfo</ExcludedBaseTypeName>
>     <ExcludedLibraryName>Reflection</ExcludedLibraryName>
>   </Base>
>   <Interfaces />
>   <Attributes />
>   <Members>
>     <Member MemberName="Missing">
>       <MemberSignature Language="ILASM" Value=".field public static initOnly object 
>Missing" />
>       <MemberSignature Language="C#" Value="public static readonly object Missing;" 
>/>
>       <MemberType>Field</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Object</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para> Represents a missing value in the <see cref="T:System.Type" /> 
>information.</para>
>         </summary>
>         <remarks>
>           <para>This field is read-only.</para>
>           <para>Use the <see langword="Missing" /> 
> 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="none" type="note">If the <see langword="Missing" /> field is specified for a
> parameter value and there is no default value for that parameter, a <see 
>cref="T:System.ArgumentException" /> is
> thrown.</block></para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="Delimiter">
>       <MemberSignature Language="ILASM" Value=".field public static initOnly 
>valuetype System.Char Delimiter" />
>       <MemberSignature Language="C#" Value="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 fully 
>qualified name
>       of a <see cref="T:System.Type" />
>       .</para>
>         </summary>
>         <remarks>
>           <para>This field is read-only.</para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="EmptyTypes">
>       <MemberSignature Language="ILASM" Value=".field public static initOnly class 
>System.Type[] EmptyTypes" />
>       <MemberSignature Language="C#" Value="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="T:System.Type" /> .</para>
>         </summary>
>         <remarks>
>           <para>This field is read-only.</para>
>           <para>The empty <see cref="T:System.Type" /> array returned by this field 
>is used to specify that 
>    lookup methods in the <see cref="T:System.Type" /> class, such as <see 
>cref="M:System.Type.GetMethod(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[])"
> /> and <see 
>cref="M:System.Type.GetConstructor(System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[])"
> />,
>    search for members that do not take parameters. <block subset="none" 
>type="note">For example, to locate the public instance constructor that takes no
>    parameters, invoke <see 
>cref="M:System.Type.GetConstructor(System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[])"
> /> (<see cref="F:System.Reflection.BindingFlags.Public" /> | <see 
>cref="F:System.Reflection.BindingFlags.Instance" />, <see langword="null" />, <see 
>cref="F:System.Type.EmptyTypes" />,
> <see langword="null" />).</block></para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="InvokeMember">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig virtual 
>abstract object InvokeMember(string name, valuetype System.Reflection.BindingFlags 
>invokeAttr, class System.Reflection.Binder binder, object target, class 
>System.Object[] args, class System.Reflection.ParameterModifier[] modifiers, class 
>System.Globalization.CultureInfo culture, class System.String[] namedParameters)" />
>       <MemberSignature Language="C#" Value="public abstract object 
>InvokeMember(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="name" Type="System.String" />
>         <Parameter Name="invokeAttr" Type="System.Reflection.BindingFlags" />
>         <Parameter Name="binder" Type="System.Reflection.Binder" />
>         <Parameter Name="target" Type="System.Object" />
>         <Parameter Name="args" Type="System.Object[]" />
>         <Parameter Name="modifiers" Type="System.Reflection.ParameterModifier[]" />
>         <Parameter Name="culture" Type="System.Globalization.CultureInfo" />
>         <Parameter Name="namedParameters" Type="System.String[]" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para> Invokes or
>       accesses a member defined on the type represented by the current instance
>       that matches the specified binding criteria.</para>
>         </summary>
>         <param name="name">
>           <para>A <see cref="T:System.String" /> containing the name of the 
>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="F:System.String.Empty" /> to invoke that member. <block subset="none" 
>type="note">For more information on default members, see <see 
>cref="T:System.Reflection.DefaultMemberAttribute" /> .</block></para>
>         </param>
>         <param name="invokeAttr">
>           <para>A bitwise combination of <see 
>cref="T:System.Reflection.BindingFlags" /> values that control the binding process. 
>If zero is specified, <see cref="F:System.Reflection.BindingFlags.Public" /> | <see 
>cref="F:System.Reflection.BindingFlags.Instance" /> is used by default.<SPAN /></para>
>         </param>
>         <param name="target">A <see cref="T:System.Object" /> on which to invoke the 
>member that matches the other specified criteria. If the matching member is <see 
>langword="static" /> , this parameter is ignored.</param>
>         <param name="args">An array of objects containing the arguments to pass to 
>the member to be invoked. The elements of this array are of the same 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="nameParameters" /> is <see 
>langword="null" />. If <paramref name="namedParameters" /> is not <see 
>langword="null" />, the order of the elements in <paramref name="args" /> corresponds 
>to the order of the parameters specified in <paramref name="namedParameters" />. 
>Specify an empty array or <see langword="null" /> for a member that takes no 
>parameters.</param>
>         <param name="modifiers">
>           <para>The only defined value for this parameter is <see langword="null" /> 
>.</para>
>         </param>
>         <param name="culture">
>           <para>The only defined value for this parameter is <see langword="null" /> 
>.</para>
>         </param>
>         <param name="namedParameters">An array of <see cref="T:System.String" /> 
>objects containing the names of the parameters to which the values in <paramref 
>name="args" /> are passed. These names are processed in a case-sensitive manner and 
>have a one-to-one correspondence with the elements of <paramref name="args" />. 
>Specify an empty array or <see langword="null" /> for a member that takes no 
>parameters. Specify <see langword="null" /> to have this parameter ignored.</param>
>         <returns>
>           <para>A <see cref="T:System.Object" />
> containing the return value of the invoked or accessed member. If the member
> does not have a return value, returns a <see cref="T:System.Object" /> containing 
><see cref="T:System.Void" /> .</para>
>         </returns>
>         <exception cref="T:System.ArgumentNullException">
>           <para>
>             <paramref name="name" /> is <see langword="null" />.</para>
>         </exception>
>         <exception cref="T:System.ArgumentException">
>           <para>
>             <paramref name="args" /> has more than one dimension.</para>
>           <para>-or-</para>
>           <para>
>             <paramref name="invokeAttr" /> is not a valid <see 
>cref="T:System.Reflection.BindingFlags" /> value.</para>
>           <para>-or-</para>
>           <para>The member to be invoked is a constructor and <see 
>cref="F:System.Reflection.BindingFlags.CreateInstance" /> is not specified in 
><paramref name="invokeAttr" />.</para>
>           <para>-or-</para>
>           <para>The member to be invoked is a method that is not a type initializer 
>or instance constructor, and <see 
>cref="F:System.Reflection.BindingFlags.InvokeMethod" /> is not specified in <paramref 
>name="invokeAttr" />.</para>
>           <para>-or-</para>
>           <para>The member to be accessed is a field, and neither <see 
>cref="F:System.Reflection.BindingFlags.GetField" /> nor <see 
>cref="F:System.Reflection.BindingFlags.SetField" /> is specified in <paramref 
>name="invokeAttr" />.</para>
>           <para>-or-</para>
>           <para>The member to be accessed is a property, and neither <see 
>cref="F:System.Reflection.BindingFlags.GetProperty" /> nor <see 
>cref="F:System.Reflection.BindingFlags.SetProperty" /> is specified in <paramref 
>name="invokeAttr" />.</para>
>           <para>-or-</para>
>           <para>
>             <paramref name="invokeAttr" /> contains <see 
>cref="F:System.Reflection.BindingFlags.CreateInstance" /> and at least one of <see 
>cref="F:System.Reflection.BindingFlags.InvokeMethod" />, <see 
>cref="F:System.Reflection.BindingFlags.GetField" />, <see 
>cref="F:System.Reflection.BindingFlags.SetField" />, <see 
>cref="F:System.Reflection.BindingFlags.GetProperty" />, or <see 
>cref="F:System.Reflection.BindingFlags.SetProperty" />.</para>
>           <para>-or-</para>
>           <para>
>             <paramref name="invokeAttr" /> contains both <see 
>cref="F:System.Reflection.BindingFlags.GetField" /> and <see 
>cref="F:System.Reflection.BindingFlags.SetField" />.</para>
>           <para>-or-</para>
>           <para>
>             <paramref name="invokeAttr" /> contains both <see 
>cref="F:System.Reflection.BindingFlags.GetProperty" /> and <see 
>cref="F:System.Reflection.BindingFlags.SetProperty" />.</para>
>           <para>-or-</para>
>           <para>
>             <paramref name="invokeAttr" /> contains <see 
>cref="F:System.Reflection.BindingFlags.InvokeMethod" /> and at least one of <see 
>cref="F:System.Reflection.BindingFlags.SetField" /> or <see 
>cref="F:System.Reflection.BindingFlags.SetProperty" />.</para>
>           <para>-or-</para>
>           <para>
>             <paramref name="invokeAttr" /> contains <see 
>cref="F:System.Reflection.BindingFlags.SetField" /> and <paramref name="args" /> has 
>more than one element.</para>
>           <para>-or-</para>
>           <para>
>             <paramref name="namedParameters" />.Length &gt; <paramref name="args" 
>/>.Length .</para>
>           <para>-or-</para>
>           <para>At least one element in <paramref name="namedParameters" /> is <see 
>langword="null" />.</para>
>           <para>-or-</para>
>           <para>At least one element in <paramref name="args" /> is not 
>assignment-compatible with the corresponding parameter in <paramref 
>name="namedParameters" />.</para>
>         </exception>
>         <exception cref="T:System.MissingFieldException">A field or property 
>matching the specified criteria was not found.</exception>
>         <exception cref="T:System.MissingMethodException">A method matching the 
>specified criteria cannot be found.</exception>
>         <exception cref="T:System.MethodAccessException">The requested member is 
>non-public and the caller does not have the required permission.</exception>
>         <exception cref="T:System.Reflection.TargetException">The member matching 
>the specified criteria cannot be invoked on <paramref name="target" />.</exception>
>         <exception cref="T:System.Reflection.TargetInvocationException">The member 
>matching the specified criteria threw an exception.</exception>
>         <exception cref="T:System.Reflection.AmbiguousMatchException">More than one 
>member matches the specified criteria.</exception>
>         <remarks>
>           <para>
>             <see 
>cref="M:System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[])"
> /> calls a constructor or a method , gets or sets a property , 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="InvokeAttr" /> . The <see 
>cref="M:System.Reflection.Binder.BindToMethod(System.Reflection.BindingFlags,System.Reflection.MethodBase[],System.Object[]@,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],System.Object@)"
> qualify="true" /> is
>    responsible for selecting the method to be invoked. The default binder selects
>    the most specific match. The set of members is then filtered by name, number of
>    arguments, and a set of search modifiers defined in the binder. After the 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="T:System.Reflection.BindingFlags" /> are 
>used to define which
> members to include in the search:</para>
>           <list type="bullet">
>             <item>
>               <term>
>       Specify either <see cref="F:System.Reflection.BindingFlags.Instance" /> or 
><see cref="F:System.Reflection.BindingFlags.Static" />
>       to get a return value other than <see langword="null" />.</term>
>             </item>
>             <item>
>               <term>
>       Specify <see cref="F:System.Reflection.BindingFlags.Public" /> to include 
>public members in
>       the search.</term>
>             </item>
>             <item>
>               <term>
>       Specify <see cref="F:System.Reflection.BindingFlags.NonPublic" /> to include 
>non-public members
>       (that is, private and protected members) in the search.</term>
>             </item>
>             <item>
>               <term>
>       Specify <see cref="F:System.Reflection.BindingFlags.FlattenHierarchy" /> to 
>include
>       static members declared in ancestors in the search.</term>
>             </item>
>           </list>
>           <para>The following <see cref="T:System.Reflection.BindingFlags" /> values 
>can be used to change how the
> search works:</para>
>           <list type="bullet">
>             <item>
>               <term>
>                 <see cref="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="F:System.Reflection.BindingFlags.IgnoreCase" /> to ignore 
>the case of
>    <paramref name="name" />.</term>
>             </item>
>           </list>
>           <para>
>             <block subset="none" type="note">For more information, see <see 
>cref="T:System.Reflection.BindingFlags" />.</block>
>           </para>
>           <block subset="none" type="behaviors">
>             <para>Each parameter in the <paramref name="namedParameters" /> array is 
>assigned the value in the
>    corresponding element in the <paramref name="args" /> array. If the length of 
><paramref name="args" /> is
>    greater than the length of <paramref name="namedParameters" />, the remaining 
>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 by
>    the binder to the type
>    of the parameter. </para>
>             <para>It is required that the caller specify values for <paramref 
>name="bindingAttr" /> as
> follows:</para>
>             <para>
>               <list type="table">
>                 <listheader>
>                   <term>Action</term>
>                   <description>BindingFlags</description>
>                 </listheader>
>                 <item>
>                   <term> Invoke a constructor. </term>
>                   <description>
>                     <see cref="F:System.Reflection.BindingFlags.CreateInstance" />. 
>This
>       flag is not valid with the other flags in this table. If this flag is
>       specified, <paramref name="name" /> is ignored. </description>
>                 </item>
>                 <item>
>                   <term> Invoke a method. </term>
>                   <description>
>                     <see cref="F:System.Reflection.BindingFlags.InvokeMethod" />. 
>This
>    flag if not valid with <see 
>cref="F:System.Reflection.BindingFlags.CreateInstance" />, <see 
>cref="F:System.Reflection.BindingFlags.SetField" />, or <see 
>cref="F:System.Reflection.BindingFlags.SetProperty" />. </description>
>                 </item>
>                 <item>
>                   <term> Define a field value. </term>
>                   <description>
>                     <see cref="F:System.Reflection.BindingFlags.SetField" />. This
>    flag is not valid with <see 
>cref="F:System.Reflection.BindingFlags.CreateInstance" />, <see 
>cref="F:System.Reflection.BindingFlags.InvokeMethod" />, or <see 
>cref="F:System.Reflection.BindingFlags.GetField" />.</description>
>                 </item>
>                 <item>
>                   <term> Return a field value. </term>
>                   <description>
>                     <see cref="F:System.Reflection.BindingFlags.GetField" />. This
>    flag is not valid with <see 
>cref="F:System.Reflection.BindingFlags.CreateInstance" />, <see 
>cref="F:System.Reflection.BindingFlags.InvokeMethod" />, or <see 
>cref="F:System.Reflection.BindingFlags.SetField" />.</description>
>                 </item>
>                 <item>
>                   <term> Set a property. </term>
>                   <description>
>                     <see cref="F:System.Reflection.BindingFlags.SetProperty" />. This
>    flag is not valid with <see 
>cref="F:System.Reflection.BindingFlags.CreateInstance" />, <see 
>cref="F:System.Reflection.BindingFlags.InvokeMethod" />, or <see 
>cref="F:System.Reflection.BindingFlags.GetProperty" />.</description>
>                 </item>
>                 <item>
>                   <term> Get a property.</term>
>                   <description>
>                     <see cref="F:System.Reflection.BindingFlags.GetProperty" />. This
>    flag is not valid with <see 
>cref="F:System.Reflection.BindingFlags.CreateInstance" />, <see 
>cref="F:System.Reflection.BindingFlags.InvokeMethod" />, or <see 
>cref="F:System.Reflection.BindingFlags.SetProperty" />.</description>
>                 </item>
>               </list>
>             </para>
>             <para>
>               <block subset="none" type="note">For more information, see <see 
>cref="T:System.Reflection.BindingFlags" /> .</block>
>             </para>
>           </block>
>           <block subset="none" type="usage">
>             <para>
>               <see 
>cref="M:System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],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="F:System.Reflection.BindingFlags.OptionalParamBinding" /> must be specified. 
>For a parameter that has a
>    default value, the caller can supply a value or supply <see 
>cref="F:System.Type.Missing" />
>    
>    to use the default value.</para>
>             <para>
>               <see 
>cref="M:System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[])"
> /> can be used to set a field to a
> particular value by specifying <see cref="F:System.Reflection.BindingFlags.SetField" 
>/> . For example, to set a public instance field named F on class 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="M:System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,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 follows:</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="T:System.Security.Permissions.ReflectionPermission">Requires permission to 
>retrieve information on non-public members of types in loaded assemblies. See <see 
>cref="F:System.Security.Permissions.ReflectionPermissionFlag.TypeInformation" 
>/>.</permission>
>         <example>
>           <para>The following example demonstrates the use of <see 
>cref="M:System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[])"
> /> to
>    construct a <see cref="T:System.String" />, obtain its <see 
>cref="P:System.String.Length" /> property, invoke <see 
>cref="M:System.String.Insert(System.Int32,System.String)" /> on it, and
>    then set its value using the <see cref="F:System.String.Empty" /> field.</para>
>           <code lang="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 = 
>       new char[] {'A',' ','s','t','r','i','n','g'};
>       object[] oAry = new object[] {cAry, 0, cAry.Length};
> 
>       Type t = typeof(string);
> 
>       // Invoke the constructor of a string.
>       string str =
>          (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 =
>          (int) t.InvokeMember("Length", BindingFlags.Instance |
>          BindingFlags.Public | BindingFlags.GetProperty, null, 
>          str, null, null, null, null);
>       Console.WriteLine("The length of the string is {0}.", i);
> 
>       // Invoke a method on the string.
>       string newStr = "new ";
>       object[] oAry2 = new Object[] {2, newStr};
>       str = (string) t.InvokeMember("Insert", BindingFlags.Instance |
>          BindingFlags.Public | BindingFlags.InvokeMethod, null, str, 
>          oAry2, null, null, null);
>       Console.WriteLine("The modified string is \"{0}\".", str);
> 
>       // Access a field of the string.
>       str = (string) t.InvokeMember("Empty", BindingFlags.Static | 
>          BindingFlags.Public | BindingFlags.GetField, null, str, 
>          null);
>       Console.WriteLine("The empty string is \"{0}\".", str);
>   
>    }
> }
> </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="GetMembers">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig virtual 
>abstract class System.Reflection.MemberInfo[] GetMembers(valuetype 
>System.Reflection.BindingFlags bindingAttr)" />
>       <MemberSignature Language="C#" Value="public abstract MemberInfo[] 
>GetMembers(BindingFlags bindingAttr);" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Reflection.MemberInfo[]</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="bindingAttr" Type="System.Reflection.BindingFlags" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para>Returns an array of <see cref="T:System.Reflection.MemberInfo" /> 
>objects that reflect the members that are
>    defined in the type represented by the current instance and match the specified
>    binding constraints.</para>
>         </summary>
>         <param name="bindingAttr">
>           <para>A bitwise combination of <see 
>cref="T:System.Reflection.BindingFlags" /> values that control the binding process. 
>If zero is specified, this method returns <see langword="null" /> . </para>
>         </param>
>         <returns>
>           <para>An array of <see cref="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="bindingAttr" /> . If no members match these 
>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="T:System.Reflection.BindingFlags" /> are 
>used to define which
>    members to include in the search:</para>
>           <list type="bullet">
>             <item>
>               <term>
>       
>       Specify either <see cref="F:System.Reflection.BindingFlags.Instance" /> or 
><see cref="F:System.Reflection.BindingFlags.Static" />
>       to get a return value other than <see langword="null" />.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.Public" /> to include 
>public members in
>       the search.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.NonPublic" /> to include 
>non-public members
>       (that is, private and protected members) in the search.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.FlattenHierarchy" /> to 
>include
>       static members declared in ancestors in the search.</term>
>             </item>
>           </list>
>           <para>The following <see cref="T:System.Reflection.BindingFlags" /> values 
>can be used to change how the
> search works:</para>
>           <list type="bullet">
>             <item>
>               <term>
>                 <see cref="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="none" type="note">For more information, see <see 
>cref="T:System.Reflection.BindingFlags" />.</block>
>           </para>
>           <para>
>             <block subset="none" type="behaviors">As described above.</block>
>           </para>
>         </remarks>
>         <permission 
>cref="T:System.Security.Permissions.ReflectionPermission">Requires permission to 
>retrieve information on non-public members of types in loaded assemblies. See <see 
>cref="F:System.Security.Permissions.ReflectionPermissionFlag.TypeInformation" 
>/>.</permission>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetMember">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig virtual 
>class System.Reflection.MemberInfo[] GetMember(string name, valuetype 
>System.Reflection.BindingFlags bindingAttr)" />
>       <MemberSignature Language="C#" Value="public virtual MemberInfo[] 
>GetMember(string name, BindingFlags bindingAttr);" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Reflection.MemberInfo[]</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="name" Type="System.String" />
>         <Parameter Name="bindingAttr" Type="System.Reflection.BindingFlags" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para>Returns an array of <see cref="T:System.Reflection.MemberInfo" /> 
>objects that reflect the members defined in
>    the type represented by the current instance that have the specified name
>    and match the specified binding constraints.</para>
>         </summary>
>         <param name="name">A <see cref="T:System.String" /> containing the name of 
>the member to be returned.</param>
>         <param name="bindingAttr">
>           <para>A bitwise combination of <see 
>cref="T:System.Reflection.BindingFlags" /> values that control the binding process. 
>If zero is specified, this method returns <see langword="null" /> . </para>
>         </param>
>         <returns>
>           <para>An array of <see cref="T:System.Reflection.MemberInfo" /> objects 
>that reflect the members
>    named <paramref name="name" />, are defined in the type represented by the 
>current instance
>    and match the constraints of <paramref name="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 reflect on
>    non-public objects in loaded assemblies, returns <see langword="null" /> .</para>
>         </returns>
>         <exception cref="T:System.ArgumentNullException">
>           <paramref name="name" /> is <see langword="null" />. </exception>
>         <remarks>
>           <para>The following <see cref="T:System.Reflection.BindingFlags" /> are 
>used to define which
>    members to include in the search:</para>
>           <list type="bullet">
>             <item>
>               <term>
>       Specify either <see cref="F:System.Reflection.BindingFlags.Instance" /> or 
><see cref="F:System.Reflection.BindingFlags.Static" />
>       to get a return value other than <see langword="null" />.</term>
>             </item>
>             <item>
>               <term>
>       Specify <see cref="F:System.Reflection.BindingFlags.Public" /> to include 
>public members in
>       the search.</term>
>             </item>
>             <item>
>               <term>
>       Specify <see cref="F:System.Reflection.BindingFlags.NonPublic" /> to include 
>non-public members
>       (that is, private and protected members) in the search.</term>
>             </item>
>             <item>
>               <term>
>       Specify <see cref="F:System.Reflection.BindingFlags.FlattenHierarchy" /> to 
>include
>       static members declared in ancestors in the search.</term>
>             </item>
>           </list>
>           <para>The following <see cref="T:System.Reflection.BindingFlags" /> values 
>can be used to change how the
> search works:</para>
>           <list type="bullet">
>             <item>
>               <term>
>                 <see cref="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="F:System.Reflection.BindingFlags.IgnoreCase" /> to ignore 
>the case of
>    <paramref name="name" />.</term>
>             </item>
>           </list>
>           <para>
>             <block subset="none" type="note">For more information, see <see 
>cref="T:System.Reflection.BindingFlags" />.</block>
>           </para>
>           <para>
>             <block subset="none" type="behaviors">As described above.</block>
>           </para>
>         </remarks>
>         <permission 
>cref="T:System.Security.Permissions.ReflectionPermission">Requires permission to 
>retrieve information on non-public members of types in loaded assemblies. See <see 
>cref="F:System.Security.Permissions.ReflectionPermissionFlag.TypeInformation" 
>/>.</permission>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetProperties">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig virtual 
>abstract class System.Reflection.PropertyInfo[] GetProperties(valuetype 
>System.Reflection.BindingFlags bindingAttr)" />
>       <MemberSignature Language="C#" Value="public abstract PropertyInfo[] 
>GetProperties(BindingFlags bindingAttr);" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Reflection.PropertyInfo[]</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="bindingAttr" Type="System.Reflection.BindingFlags" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para>Returns an array of <see cref="T:System.Reflection.PropertyInfo" /> 
>objects that reflect the properties
>    defined for the type represented by the current instance that match the specified
>    binding constraints.</para>
>         </summary>
>         <param name="bindingAttr">
>           <para>A bitwise combination of <see 
>cref="T:System.Reflection.BindingFlags" /> values that control the binding process. 
>If zero is specified, this method returns <see langword="null" /> . </para>
>         </param>
>         <returns>
>           <para>An array of <see cref="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="bindingAttr" /> . If no matching properties 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="T:System.Reflection.BindingFlags" /> are 
>used to define which
>    members to include in the search:</para>
>           <list type="bullet">
>             <item>
>               <term>
>       
>       Specify either <see cref="F:System.Reflection.BindingFlags.Instance" /> or 
><see cref="F:System.Reflection.BindingFlags.Static" />
>       to get a return value other than <see langword="null" />.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.Public" /> to include 
>public members in
>       the search.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.NonPublic" /> to include 
>non-public members
>       (that is, private and protected members) in the search.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.FlattenHierarchy" /> to 
>include
>       static members declared in ancestors in the search.</term>
>             </item>
>           </list>
>           <para>The following <see cref="T:System.Reflection.BindingFlags" /> values 
>can be used to change how the
> search works:</para>
>           <list type="bullet">
>             <item>
>               <term>
>                 <see cref="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="none" type="note">For more information, see <see 
>cref="T:System.Reflection.BindingFlags" />.</block>
>           </para>
>           <para>
>             <block subset="none" type="behaviors">A property is considered by
>    reflection to be <see langword="public" /> if it has at least one accessor that is
> <see langword="public" /> . Otherwise, the property is not
> <see langword="public" />.</block>
>           </para>
>         </remarks>
>         <permission 
>cref="T:System.Security.Permissions.ReflectionPermission">Requires permission to 
>retrieve information on non-public members of types in loaded assemblies. See <see 
>cref="F:System.Security.Permissions.ReflectionPermissionFlag.TypeInformation" 
>/>.</permission>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetProperty">
>       <MemberSignature Language="ILASM" Value=".method public final hidebysig 
>virtual class System.Reflection.PropertyInfo GetProperty(string 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="C#" Value="public PropertyInfo GetProperty(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="name" Type="System.String" />
>         <Parameter Name="bindingAttr" Type="System.Reflection.BindingFlags" />
>         <Parameter Name="binder" Type="System.Reflection.Binder" />
>         <Parameter Name="returnType" Type="System.Type" />
>         <Parameter Name="types" Type="System.Type[]" />
>         <Parameter Name="modifiers" Type="System.Reflection.ParameterModifier[]" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para>Returns a <see cref="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="name">A <see cref="T:System.String" /> containing the name of 
>the property to be returned.</param>
>         <param name="bindingAttr">
>           <para>A bitwise combination of <see 
>cref="T:System.Reflection.BindingFlags" /> values that control the binding process. 
>If zero is specified, this method returns <see langword="null" /> . </para>
>         </param>
>         <param name="binder">
>           <para>A <see cref="T:System.Reflection.Binder" /> object that defines a 
>set of properties and enables the binding, coercion of argument types, and invocation 
>of members using reflection. Specify <see langword="null" /> to use the <see 
>cref="P:System.Type.DefaultBinder" /> .</para>
>         </param>
>         <param name=" returnType">A <see cref="T:System.Type" /> object that 
>represents the type of the property to be returned.</param>
>         <param name="types">
>           <para>An array of <see cref="T:System.Type" /> objects. The elements 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="F:System.Type.EmptyTypes" /> to obtain a property that is not indexed.</para>
>         </param>
>         <param name="modifiers">The only defined value for this parameter is <see 
>langword="null" /> .</param>
>         <returns>
>           <para>A <see cref="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 property is
>    found, returns <see langword="null" /> . If the type reflected by the current
>    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="null" />.</para>
>         </returns>
>         <exception cref="T:System.Reflection.AmbiguousMatchException">More than one 
>property matching the specified criteria was found.</exception>
>         <exception cref="T:System.ArgumentNullException">
>           <para>
>             <paramref name="name" /> or <paramref name="types" /> is <see 
>langword="null" />, or at least one of the elements in <paramref name="types" /> is 
><see langword="null" />.</para>
>         </exception>
>         <exception cref="T:System.ArgumentException">
>           <para>
>             <paramref name="types" /> has more than one dimension.</para>
>         </exception>
>         <remarks>
>           <para>The following <see cref="T:System.Reflection.BindingFlags" /> are 
>used to define which
>    members to include in the search:</para>
>           <list type="bullet">
>             <item>
>               <term>
>       
>       Specify either <see cref="F:System.Reflection.BindingFlags.Instance" /> or 
><see cref="F:System.Reflection.BindingFlags.Static" />
>       to get a return value other than <see langword="null" />.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.Public" /> to include 
>public members in
>       the search.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.NonPublic" /> to include 
>non-public members
>       (that is, private and protected members) in the search.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.FlattenHierarchy" /> to 
>include
>       static members declared in ancestors in the search.</term>
>             </item>
>           </list>
>           <para>The following <see cref="T:System.Reflection.BindingFlags" /> values 
>can be used to change how the
> search works:</para>
>           <list type="bullet">
>             <item>
>               <term>
>                 <see cref="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="F:System.Reflection.BindingFlags.IgnoreCase" /> to ignore 
>the case of
>    <paramref name="name" />.</term>
>             </item>
>           </list>
>           <para>
>             <block subset="none" type="note">For more information, see <see 
>cref="T:System.Reflection.BindingFlags" />.</block>
>           </para>
>           <para>This version of <see 
>cref="M:System.Type.GetProperty(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[])"
> /> is equivalent to <see 
>cref="M:System.Type.GetPropertyImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[])"
> />(<paramref name="name" />, <paramref name="bindingAttr" />, <paramref 
>name="binder" />,
> <paramref name="returnType" />, <paramref name="types" />, <paramref 
>name="modifiers" />).</para>
>           <para>The search for <paramref name="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 property
>    using reflection is required to specify this internal
>    name in order for the <see langword="PropertyInfo" /> to be returned 
>correctly.</para>
>         </remarks>
>         <permission 
>cref="T:System.Security.Permissions.ReflectionPermission">Requires permission to 
>retrieve information on non-public members of types in loaded assemblies. See <see 
>cref="F:System.Security.Permissions.ReflectionPermissionFlag.TypeInformation" 
>/>.</permission>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetProperty">
>       <MemberSignature Language="ILASM" Value=".method public final hidebysig 
>virtual class System.Reflection.PropertyInfo GetProperty(string name, valuetype 
>System.Reflection.BindingFlags bindingAttr)" />
>       <MemberSignature Language="C#" Value="public PropertyInfo GetProperty(string 
>name, BindingFlags bindingAttr);" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Reflection.PropertyInfo</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="name" Type="System.String" />
>         <Parameter Name="bindingAttr" Type="System.Reflection.BindingFlags" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para>Returns a <see cref="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="name">A <see cref="T:System.String" /> containing the name of 
>the property to be returned.</param>
>         <param name="bindingAttr">
>           <para>A bitwise combination of <see 
>cref="T:System.Reflection.BindingFlags" /> values that control the binding process. 
>If zero is specified, this method returns <see langword="null" /> . </para>
>         </param>
>         <returns>
>           <para>A <see cref="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 property is
> found, returns <see langword="null" /> . If the type reflected by the current
> 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="null" />.</para>
>         </returns>
>         <exception cref="T:System.Reflection.AmbiguousMatchException">More than one 
>property matching the specified criteria was found.</exception>
>         <exception cref="T:System.ArgumentNullException">
>           <para>
>             <paramref name="name" /> is <see langword="null" />.</para>
>         </exception>
>         <remarks>
>           <para>The following <see cref="T:System.Reflection.BindingFlags" /> are 
>used to define which
>    members to include in the search:</para>
>           <list type="bullet">
>             <item>
>               <term>
>       
>       Specify either <see cref="F:System.Reflection.BindingFlags.Instance" /> or 
><see cref="F:System.Reflection.BindingFlags.Static" />
>       to get a return value other than <see langword="null" />.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.Public" /> to include 
>public members in
>       the search.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.NonPublic" /> to include 
>non-public members
>       (that is, private and protected members) in the search.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.FlattenHierarchy" /> to 
>include
>       static members declared in ancestors in the search.</term>
>             </item>
>           </list>
>           <para>The following <see cref="T:System.Reflection.BindingFlags" /> values 
>can be used to change how the
> search works:</para>
>           <list type="bullet">
>             <item>
>               <term>
>                 <see cref="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="F:System.Reflection.BindingFlags.IgnoreCase" /> to ignore 
>the case of
>    <paramref name="name" />.</term>
>             </item>
>           </list>
>           <para>
>             <block subset="none" type="note">For more information, see <see 
>cref="T:System.Reflection.BindingFlags" />.</block>
>           </para>
>           <para>This version of <see 
>cref="M:System.Type.GetProperty(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[])"
> /> is equivalent to <see 
>cref="M:System.Type.GetPropertyImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[])"
> />(<paramref name="name" />, <paramref name="bindingAttr" />,
> <see langword="null" />, <see langword="null" />, <see langword="null" />, 
> <see langword="null" />).</para>
>           <para>The search for <paramref name="name" /> is case-sensitive.</para>
>         </remarks>
>         <permission 
>cref="T:System.Security.Permissions.ReflectionPermission">Requires permission to 
>retrieve information on non-public members of types in loaded assemblies. See <see 
>cref="F:System.Security.Permissions.ReflectionPermissionFlag.TypeInformation" 
>/>.</permission>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetFields">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig virtual 
>abstract class System.Reflection.FieldInfo[] GetFields(valuetype 
>System.Reflection.BindingFlags bindingAttr)" />
>       <MemberSignature Language="C#" Value="public abstract FieldInfo[] 
>GetFields(BindingFlags bindingAttr);" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Reflection.FieldInfo[]</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="bindingAttr" Type="System.Reflection.BindingFlags" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para>Returns an array of <see cref="T:System.Reflection.FieldInfo" /> 
>objects that reflect the fields that are
>    defined in the type represented by the current instance and match the specified
>    binding constraints.</para>
>         </summary>
>         <param name="bindingAttr">
>           <para>A bitwise combination of <see 
>cref="T:System.Reflection.BindingFlags" /> values that control the binding process. 
>If zero is specified, this method returns <see langword="null" /> . </para>
>         </param>
>         <returns>
>           <para>An array of <see cref="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="bindingAttr" /> . If no fields match
>    these 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 fields.</para>
>         </returns>
>         <remarks>
>           <para>The following <see cref="T:System.Reflection.BindingFlags" /> are 
>used to define which
>    fields to include in the search:</para>
>           <list type="bullet">
>             <item>
>               <term>
>       
>       Specify either <see cref="F:System.Reflection.BindingFlags.Instance" /> or 
><see cref="F:System.Reflection.BindingFlags.Static" /> in
>       order to get a return value other than <see langword="null" />.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.Public" /> to include 
>public fields in
>       the search.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.NonPublic" /> to include 
>non-public fields
>       (that is, private and protected fields) in the search.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.FlattenHierarchy" /> to 
>include
>       static members declared in ancestors in the search.</term>
>             </item>
>           </list>
>           <para>The following <see cref="T:System.Reflection.BindingFlags" /> values 
>can be used to change how the
> search works:</para>
>           <list type="bullet">
>             <item>
>               <term>
>                 <see cref="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="none" type="note">For more information, see <see 
>cref="T:System.Reflection.BindingFlags" />.</block>
>           </para>
>           <para>
>             <block subset="none" type="behaviors">As described above.</block>
>           </para>
>         </remarks>
>         <permission 
>cref="T:System.Security.Permissions.ReflectionPermission">Requires permission to 
>retrieve information on non-public members of a type in loaded assemblies. See <see 
>cref="F:System.Security.Permissions.ReflectionPermissionFlag.TypeInformation" 
>/>.</permission>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetField">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig virtual 
>abstract class System.Reflection.FieldInfo GetField(string name, valuetype 
>System.Reflection.BindingFlags bindingAttr)" />
>       <MemberSignature Language="C#" Value="public abstract FieldInfo 
>GetField(string name, BindingFlags bindingAttr);" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Reflection.FieldInfo</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="name" Type="System.String" />
>         <Parameter Name="bindingAttr" Type="System.Reflection.BindingFlags" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para>Returns a <see cref="T:System.Reflection.FieldInfo" /> object 
>reflecting the field that has the
>    specified name, is defined in the type represented by the current instance, and
>    matches the specified binding constraints.</para>
>         </summary>
>         <param name="name">A <see cref="T:System.String" /> containing the name of 
>the field to be returned.</param>
>         <param name="bindingAttr">
>           <para>A bitwise combination of <see 
>cref="T:System.Reflection.BindingFlags" /> values that control the binding process. 
>If zero is specified, this method returns <see langword="null" /> . </para>
>         </param>
>         <returns>
>           <para>A <see cref="T:System.Reflection.FieldInfo" /> object reflecting the 
>field that is named
> <paramref name="name" />, is defined in the type represented by the current 
>instance, and 
>    matches the constraints of <paramref name="bindingAttr" />. If a field matching 
>these criteria
>    cannot be found, returns <see langword="null" />. If the field is not public, the 
>current type is
>    from a loaded assembly, and the caller does not have sufficient permission,
>    returns <see langword="null" />.</para>
>         </returns>
>         <exception cref="T:System.ArgumentNullException">
>           <paramref name="name" /> is <see langword="null" />. </exception>
>         <remarks>
>           <para>The following <see cref="T:System.Reflection.BindingFlags" /> are 
>used to define which
>    fields to include in the search:</para>
>           <list type="bullet">
>             <item>
>               <term>
>       Specify either <see cref="F:System.Reflection.BindingFlags.Instance" /> or 
><see cref="F:System.Reflection.BindingFlags.Static" />
>       to get a return value other than <see langword="null" />.</term>
>             </item>
>             <item>
>               <term>
>       Specify <see cref="F:System.Reflection.BindingFlags.Public" /> to include 
>public fields in
>       the search.</term>
>             </item>
>             <item>
>               <term>
>       Specify <see cref="F:System.Reflection.BindingFlags.NonPublic" /> to include 
>non-public fields
>       (that is, private and protected fields) in the search.</term>
>             </item>
>             <item>
>               <term>
>       Specify <see cref="F:System.Reflection.BindingFlags.FlattenHierarchy" /> to
>       include static members declared in ancestors in the search.</term>
>             </item>
>           </list>
>           <para>The following <see cref="T:System.Reflection.BindingFlags" /> values 
>can be used to change how the
> search works:</para>
>           <list type="bullet">
>             <item>
>               <term>
>                 <see cref="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="F:System.Reflection.BindingFlags.IgnoreCase" /> to ignore 
>the case of
>    <paramref name="name" />.</term>
>             </item>
>           </list>
>           <para>
>             <block subset="none" type="note">For more information, see <see 
>cref="T:System.Reflection.BindingFlags" />.</block>
>           </para>
>           <para>
>             <block subset="none" type="behaviors">As described above.</block>
>           </para>
>         </remarks>
>         <permission 
>cref="T:System.Security.Permissions.ReflectionPermission">Requires permission to 
>retrieve information on non-public members of types in loaded assemblies. See <see 
>cref="F:System.Security.Permissions.ReflectionPermissionFlag.TypeInformation" 
>/>.</permission>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetMethods">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig virtual 
>abstract class System.Reflection.MethodInfo[] GetMethods(valuetype 
>System.Reflection.BindingFlags bindingAttr)" />
>       <MemberSignature Language="C#" Value="public abstract MethodInfo[] 
>GetMethods(BindingFlags bindingAttr);" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Reflection.MethodInfo[]</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="bindingAttr" Type="System.Reflection.BindingFlags" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para>Returns an array of <see cref="T:System.Reflection.MethodInfo" /> 
>objects that reflect the methods defined in the type
>    represented by the current instance that match the specified binding 
>constraints.</para>
>         </summary>
>         <param name="bindingAttr">
>           <para>A bitwise combination of <see 
>cref="T:System.Reflection.BindingFlags" /> values that control the binding process. 
>If zero is specified, this method returns <see langword="null" /> . </para>
>         </param>
>         <returns>
>           <para>An array of <see cref="T:System.Reflection.MethodInfo" /> objects 
>reflecting the methods defined in the type
>    represented by the current instance that match the constraints of
> <paramref name="bindingAttr" /> . If no such methods 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 methods.</para>
>         </returns>
>         <remarks>
>           <para>The following <see cref="T:System.Reflection.BindingFlags" /> are 
>used to define which
>    members to include in the search:</para>
>           <list type="bullet">
>             <item>
>               <term>
>       
>       Specify either <see cref="F:System.Reflection.BindingFlags.Instance" /> or 
><see cref="F:System.Reflection.BindingFlags.Static" />
>       to get a return value other than <see langword="null" />.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.Public" /> to include 
>public members in
>       the search.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.NonPublic" /> to include 
>non-public members
>       (that is, private and protected members) in the search.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.FlattenHierarchy" /> to 
>include
>       static members declared in ancestors in the search.</term>
>             </item>
>           </list>
>           <para>The following <see cref="T:System.Reflection.BindingFlags" /> values 
>can be used to change how the
> search works:</para>
>           <list type="bullet">
>             <item>
>               <term>
>                 <see cref="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="none" type="note">For more information, see <see 
>cref="T:System.Reflection.BindingFlags" />.</block>
>           </para>
>           <para>
>             <block subset="none" type="behaviors">As described above.</block>
>           </para>
>         </remarks>
>         <permission 
>cref="T:System.Security.Permissions.ReflectionPermission">Requires permission to 
>retrieve information on non-public members of types in loaded assemblies. See <see 
>cref="F:System.Security.Permissions.ReflectionPermissionFlag.TypeInformation" 
>/>.</permission>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetMethod">
>       <MemberSignature Language="ILASM" Value=".method public final hidebysig 
>virtual class System.Reflection.MethodInfo GetMethod(string name, valuetype 
>System.Reflection.BindingFlags bindingAttr)" />
>       <MemberSignature Language="C#" Value="public MethodInfo GetMethod(string name, 
>BindingFlags bindingAttr);" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Reflection.MethodInfo</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="name" Type="System.String" />
>         <Parameter Name="bindingAttr" Type="System.Reflection.BindingFlags" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para>Returns a <see cref="T:System.Reflection.MethodInfo" /> object that 
>reflects the method that has the
>    specified name and is defined in the type represented by the current
>    instance.</para>
>         </summary>
>         <param name="name">A <see cref="T:System.String" /> containing the name of 
>the method to be returned.</param>
>         <param name="bindingAttr">
>           <para>A bitwise combination of <see 
>cref="T:System.Reflection.BindingFlags" /> values that control the binding process. 
>If zero is specified, this method returns <see langword="null" /> . </para>
>         </param>
>         <returns>
>           <para>A <see cref="T:System.Reflection.MethodInfo" /> object
>    that reflects the method that is defined
>    in the type represented by the current instance and matches the specified
>    criteria, if found; otherwise, <see langword="null" />.</para>
>         </returns>
>         <exception cref="T:System.Reflection.AmbiguousMatchException">More than one 
>method matching the specified criteria was found.</exception>
>         <exception cref="T:System.ArgumentNullException">
>           <paramref name="name" /> is <see langword="null" />.</exception>
>         <remarks>
>           <para>The following <see cref="T:System.Reflection.BindingFlags" /> are 
>used to define which
>    members to include in the search:</para>
>           <list type="bullet">
>             <item>
>               <term>
>       
>       Specify either <see cref="F:System.Reflection.BindingFlags.Instance" /> or 
><see cref="F:System.Reflection.BindingFlags.Static" />
>       to get a return value other than <see langword="null" />.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.Public" /> to include 
>public members in
>       the search.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.NonPublic" /> to include 
>non-public members
>       (that is, private and protected members) in the search.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.FlattenHierarchy" /> to 
>include
>       static members declared in ancestors in the search.</term>
>             </item>
>           </list>
>           <para>The following <see cref="T:System.Reflection.BindingFlags" /> values 
>can be used to change how the
> search works:</para>
>           <list type="bullet">
>             <item>
>               <term>
>                 <see cref="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="F:System.Reflection.BindingFlags.IgnoreCase" /> to ignore 
>the case of
>    <paramref name="name" />.</term>
>             </item>
>           </list>
>           <para>
>             <block subset="none" type="note">For more information, see <see 
>cref="T:System.Reflection.BindingFlags" />.</block>
>           </para>
>           <para>This version of <see 
>cref="M:System.Type.GetMethod(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[])"
> /> is equivalent to <see 
>cref="M:System.Type.GetMethod(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[])"
> />(<paramref name="name" />, <paramref name="bindingAttr" /> ,
> <see langword="null" />, <see langword="null" />, <see langword="null" />).</para>
>         </remarks>
>         <permission 
>cref="T:System.Security.Permissions.ReflectionPermission">Requires permission to 
>retrieve information on non-public members of types in loaded assemblies. See <see 
>cref="F:System.Security.Permissions.ReflectionPermissionFlag.TypeInformation" 
>/>.</permission>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetMethod">
>       <MemberSignature Language="ILASM" Value=".method public final hidebysig 
>virtual class System.Reflection.MethodInfo GetMethod(string name, valuetype 
>System.Reflection.BindingFlags bindingAttr, class System.Reflection.Binder binder, 
>class System.Type[] types, class System.Reflection.ParameterModifier[] modifiers)" />
>       <MemberSignature Language="C#" Value="public MethodInfo GetMethod(string name, 
>BindingFlags bindingAttr, Binder binder, Type[] types, ParameterModifier[] 
>modifiers);" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Reflection.MethodInfo</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="name" Type="System.String" />
>         <Parameter Name="bindingAttr" Type="System.Reflection.BindingFlags" />
>         <Parameter Name="binder" Type="System.Reflection.Binder" />
>         <Parameter Name="types" Type="System.Type[]" />
>         <Parameter Name="modifiers" Type="System.Reflection.ParameterModifier[]" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para>Returns a <see cref="T:System.Reflection.MethodInfo" /> object that 
>reflects the method that matches the
>    specified criteria and is defined in the type represented by the current
>    instance.</para>
>         </summary>
>         <param name="name">A <see cref="T:System.String" /> containing the name of 
>the method to be returned.</param>
>         <param name="bindingAttr">
>           <para>A bitwise combination of <see 
>cref="T:System.Reflection.BindingFlags" /> values that control the binding process. 
>If zero is specified, this method returns <see langword="null" /> . </para>
>         </param>
>         <param name="binder">
>           <para>A <see cref="T:System.Reflection.Binder" /> object that defines a 
>set of properties and enables the binding, coercion of argument types, and invocation 
>of members using reflection. Specify <see langword="null" /> to use the <see 
>cref="P:System.Type.DefaultBinder" /> .</para>
>         </param>
>         <param name="types">
>           <para>An array of <see cref="T:System.Type" /> objects. The elements 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="modifiers">The only defined value for this parameter is <see 
>langword="null" /> .</param>
>         <returns>
>           <para>A <see cref="T:System.Reflection.MethodInfo" /> object that reflects
>    the method defined in the type represented by the current instance that
>    matches the specified criteria. If no method matching the specified criteria is 
>found, returns
> <see langword="null" /> . If the 
>    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 assemblies,
>    returns <see langword="null" />.</para>
>         </returns>
>         <exception cref="T:System.Reflection.AmbiguousMatchException">More than one 
>method matching the specified criteria was found.</exception>
>         <exception cref="T:System.ArgumentNullException">
>           <para>
>             <paramref name="name" /> or <paramref name="types" /> is <see 
>langword="null" />.</para>
>           <para>-or-</para>
>           <para>At least one of the elements in <paramref name="types" /> is <see 
>langword="null" />.</para>
>         </exception>
>         <exception cref="T:System.ArgumentException">
>           <para>
>             <paramref name="types" /> has more than one dimension.</para>
>         </exception>
>         <remarks>
>           <para>The following <see cref="T:System.Reflection.BindingFlags" /> are 
>used to define which
>    members to include in the search:</para>
>           <list type="bullet">
>             <item>
>               <term>
>       
>       Specify either <see cref="F:System.Reflection.BindingFlags.Instance" /> or 
><see cref="F:System.Reflection.BindingFlags.Static" />
>       to get a return value other than <see langword="null" />.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.Public" /> to include 
>public members in
>       the search.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.NonPublic" /> to include 
>non-public members
>       (that is, private and protected members) in the search.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.FlattenHierarchy" /> to 
>include
>       static members declared in ancestors in the search.</term>
>             </item>
>           </list>
>           <para>The following <see cref="T:System.Reflection.BindingFlags" /> values 
>can be used to change how the
> search works:</para>
>           <list type="bullet">
>             <item>
>               <term>
>                 <see cref="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="F:System.Reflection.BindingFlags.IgnoreCase" /> to ignore 
>the case of
>    <paramref name="name" />.</term>
>             </item>
>           </list>
>           <para>
>             <block subset="none" type="note">For more information, see <see 
>cref="T:System.Reflection.BindingFlags" />.</block>
>           </para>
>         </remarks>
>         <permission 
>cref="T:System.Security.Permissions.ReflectionPermission">Requires permission to 
>retrieve information on non-public members of types in loaded assemblies. See <see 
>cref="F:System.Security.Permissions.ReflectionPermissionFlag.TypeInformation" 
>/>.</permission>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="IsAssignableFrom">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig virtual bool 
>IsAssignableFrom(class System.Type c)" />
>       <MemberSignature Language="C#" Value="public virtual bool 
>IsAssignableFrom(Type c);" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Boolean</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="c" Type="System.Type" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para> Determines whether an instance of the current <see 
>cref="T:System.Type" /> can be assigned
>    from an instance of the specified <see cref="T:System.Type" /> .
>    </para>
>         </summary>
>         <param name="c">The <see cref="T:System.Type" /> to compare with the current 
><see cref="T:System.Type" /> . </param>
>         <returns>
>           <para>
>             <see langword="false" /> if <paramref name="c" /> is a null 
>reference.</para>
>           <para>
>             <see langword="true" /> if one or more of the following
> statements are true; otherwise <see langword="false" />. </para>
>           <list type="bullet">
>             <item>
>               <term>
>       
>       If <paramref name="c" /> and the current <see cref="T:System.Type" /> 
>represent the same type.</term>
>             </item>
>             <item>
>               <term>
>       
>       If the current <see cref="T:System.Type" /> is in the inheritance hierarchy of 
><paramref name="c" />.</term>
>             </item>
>             <item>
>               <term>
>       
>       If the current <see cref="T:System.Type" /> is an interface and <paramref 
>name="c" /> supports that
>       interface.</term>
>             </item>
>           </list>
>           <see langword="" />
>         </returns>
>         <example>
>           <para>The following example demonstrates the <see 
>cref="M:System.Type.IsAssignableFrom(System.Type)" />
> method using arrays.</para>
>           <code lang="C#">using System;
> class ArrayTypeTest {
>  public static void Main() {
>  int i = 1;
>  int [] array10 = new int [10];
>  int [] array2 = new int[2];
>  int [,]array22 = new int[2,2];
>  int [,]array24 = new int[2,4];
>  int [,,]array333 = new int[3,3,3];
>  Type array10Type = array10.GetType();
>  Type array2Type = array2.GetType();
>  Type array22Type = array22.GetType();
>  Type array24Type = array24.GetType();
>  Type array333Type = array333.GetType();
> 
>  // If X and Y are not both arrays, then false
>  Console.WriteLine("int[2] is assignable from int? {0} ", 
>array2Type.IsAssignableFrom(i.GetType()));
>  // If X and Y have same type and rank, then true.
>  Console.WriteLine("int[2] is assignable from int[10]? {0} ",  
>array2Type.IsAssignableFrom(array10Type));
>  Console.WriteLine("int[2,2] is assignable from int[2,4]? {0}",  
>array22Type.IsAssignableFrom(array24Type));
>  Console.WriteLine("int[2,4] is assignable from int[2,2]? {0}",  
>array24Type.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}",  
>array22Type.IsAssignableFrom(array333Type));
>  Console.WriteLine("int[3,3,3] is assignable from int[2,2]? {0}",  
>array333Type.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="IsInstanceOfType">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig virtual bool 
>IsInstanceOfType(object o)" />
>       <MemberSignature Language="C#" Value="public virtual bool 
>IsInstanceOfType(object o);" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Boolean</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="o" Type="System.Object" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para> Determines whether the specified object is an instance
>       of the current <see cref="T:System.Type" />.
>       </para>
>         </summary>
>         <param name="o">The object to compare with the current <see 
>cref="T:System.Type" />. </param>
>         <returns>
>           <para>
>             <see langword="true" /> if either of the following
>    statements is true; otherwise <see langword="false" />.
>    </para>
>           <list type="bullet">
>             <item>
>               <term>
>       
>       If the current <see cref="T:System.Type" /> is in the inheritance hierarchy of 
><paramref name="o" />.</term>
>             </item>
>             <item>
>               <term>
>       
>       If the current <see cref="T:System.Type" /> is an interface and <paramref 
>name="o" /> supports that
>       interface.</term>
>             </item>
>           </list>
>           <para>If <paramref name="o" /> is a null reference, returns <see 
>langword="false" />.</para>
>         </returns>
>         <remarks>
>           <para>
>             <block subset="none" type="behaviors">As described above.</block>
>           </para>
>         </remarks>
>         <example>
>           <para>The following example demonstrates the <see 
>cref="M:System.Type.IsInstanceOfType(System.Object)" />
> method.</para>
>           <code lang="C#">using System;
> public interface IFoo { }
> public class MyClass : IFoo {}
> public class MyDerivedClass : MyClass {}
> class IsInstanceTest {
>  public static void Main() {
>  Type ifooType=typeof(IFoo);
>  MyClass mc = new MyClass();
>  Type mcType = mc.GetType();
>  MyClass mdc = new MyDerivedClass();
>  Type mdcType = mdc.GetType();
>  int [] array = new int [10];
>  Type arrayType = typeof(Array);
>  Console.WriteLine("int[] is instance of Array? {0}", 
>arrayType.IsInstanceOfType(array));
>  Console.WriteLine("myclass instance is instance of MyClass? {0}", 
>mcType.IsInstanceOfType(mc));
>  Console.WriteLine("myderivedclass instance is instance of MyClass? {0}",  
>mcType.IsInstanceOfType(mdc));
>  Console.WriteLine("myclass instance is instance of IFoo? {0}", 
>ifooType.IsInstanceOfType(mc));
>  Console.WriteLine("myderivedclass instance is instance of IFoo? {0}",  
>ifooType.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</para>
>             <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="IsSubclassOf">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig virtual bool 
>IsSubclassOf(class System.Type c)" />
>       <MemberSignature Language="C#" Value="public virtual bool IsSubclassOf(Type 
>c);" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Boolean</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="c" Type="System.Type" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para>Determines whether the current <see cref="T:System.Type" /> derives 
>from the
>    specified <see cref="T:System.Type" /> .</para>
>         </summary>
>         <param name="c">The <see cref="T:System.Type" /> to compare with the current 
><see cref="T:System.Type" />.</param>
>         <returns>
>           <para>
>             <see langword="true" /> if <paramref name="c" /> and the current
> <see cref="T:System.Type" /> represent 
>    classes, and the class represented by the current <see cref="T:System.Type" /> 
>derives from the class represented by
> <paramref name="c" />; otherwise <see langword="false" />. Returns <see 
>langword="false" /> if 
> <paramref name="c" /> and the current <see cref="T:System.Type" /> represent the 
>same class.</para>
>         </returns>
>         <example>
>           <para>The following example demonstrates the <see 
>cref="M:System.Type.IsSubclassOf(System.Type)" />
> method.</para>
>           <code lang="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 = typeof(IFoo);
>  Type ibarType = typeof(IBar);
>  MyClass mc = new MyClass();
>  Type mcType = mc.GetType();
>  MyClass mdc = new MyDerivedClass();
>  Type mdcType = mdc.GetType();
>  int [] array = new int [10];
>  Type arrayOfIntsType = array.GetType();
>  Type arrayType = typeof(Array);
>  
>  Console.WriteLine("Array is subclass of int[]? {0}", 
>arrayType.IsSubclassOf(arrayOfIntsType));
>  Console.WriteLine("int [] is subclass of Array? {0}", 
>arrayOfIntsType.IsSubclassOf(arrayType));
>  Console.WriteLine("IFoo is subclass of IBar? {0}", ifooType.IsSubclassOf(ibarType));
>  Console.WriteLine("myclass is subclass of MyClass? {0}", 
>mcType.IsSubclassOf(mcType));
>  Console.WriteLine("myderivedclass is subclass of MyClass? {0}", 
>mdcType.IsSubclassOf(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="HasElementTypeImpl">
>       <MemberSignature Language="ILASM" Value=".method family hidebysig virtual 
>abstract bool HasElementTypeImpl()" />
>       <MemberSignature Language="C#" Value="protected abstract bool 
>HasElementTypeImpl();" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Boolean</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para>When overridden in a derived class, implements the <see 
>cref="P:System.Type.HasElementType" /> property and
>    determines whether the current <see cref="T:System.Type" /> encompasses or
>    refers to another type; that is,
>    whether the current <see cref="T:System.Type" /> is an array, a pointer, or is 
>passed by
>    reference.</para>
>         </summary>
>         <returns>
>           <para>
>             <see langword="true" /> if the <see cref="T:System.Type" /> is an array, 
>a pointer, or is passed by reference; otherwise, <see langword="false" />. </para>
>         </returns>
>         <remarks>
>           <para>
>             <block subset="none" type="note">For example, 
>    <see cref="M:System.Type.GetType(System.String,System.Boolean,System.Boolean)" /> 
>("System.Int32[]").HasElementTypeImpl returns
>    <see langword="true" />, but <see 
>cref="M:System.Type.GetType(System.String,System.Boolean,System.Boolean)" /> 
>("System.Int32").HasElementTypeImpl returns
>    <see langword="false" />. <see cref="M:System.Type.HasElementTypeImpl" /> also 
>returns <see langword="true" /> for "System.Int32*" and "System.Int32&amp;".</block>
>           </para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetElementType">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig virtual 
>abstract class System.Type GetElementType()" />
>       <MemberSignature Language="C#" Value="public abstract Type GetElementType();" 
>/>
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Type</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para>Returns the element type of the current <see cref="T:System.Type" />
> .</para>
>         </summary>
>         <returns>
>           <para>A <see cref="T:System.Type" /> that represents 
>    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="null" />
>    .</para>
>         </returns>
>         <example>
>           <para>The following example demonstrates the <see 
>cref="M:System.Type.GetElementType" />
> method.</para>
>           <code lang="C#">using System;
> class TestType {
>  public static void Main() {
>  int[] array = {1,2,3};
>  Type t = array.GetType();
>  Type t2 = t.GetElementType();
>  Console.WriteLine("{0} element type is {1}",array, t2.ToString());
> 
>  TestType newMe = new TestType();
>  t = newMe.GetType();
>  t2 = t.GetElementType();
>  Console.WriteLine("{0} element type is {1}", newMe, t2==null? "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="IsCOMObjectImpl">
>       <MemberSignature Language="ILASM" Value=".method family hidebysig virtual 
>abstract bool IsCOMObjectImpl()" />
>       <MemberSignature Language="C#" Value="protected abstract bool 
>IsCOMObjectImpl();" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Boolean</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para> Reserved.</para>
>         </summary>
>         <returns>
>           <para>
>             <see langword="false" />
>           </para>
>         </returns>
>         <remarks>
>           <para>This abstract method is required to be present for
>       legacy implementations. Conforming implementations are permitted to throw the
>    <see cref="T:System.NotSupportedException" />
>    as their implementation.</para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="IsPrimitiveImpl">
>       <MemberSignature Language="ILASM" Value=".method family hidebysig virtual 
>abstract bool IsPrimitiveImpl()" />
>       <MemberSignature Language="C#" Value="protected abstract bool 
>IsPrimitiveImpl();" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Boolean</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para>When overridden in a derived class, implements the <see 
>cref="P:System.Type.IsPrimitive" /> property and determines whether the
> <see cref="T:System.Type" /> is one of the primitive types.</para>
>         </summary>
>         <returns>
>           <para>
>             <see langword="true" /> if the <see cref="T:System.Type" /> is one of 
>the primitive types; otherwise, <see langword="false" />. </para>
>         </returns>
>         <remarks>
>           <para>
>             <block subset="none" type="behaviors">This method 
>       returns <see langword="true" /> if the underlying type of the current instance 
>is
>       one of the following: <see cref="T:System.Boolean" />, <see 
>cref="T:System.Byte" />, <see cref="T:System.SByte" />, <see cref="T:System.Int16" 
>/>, <see cref="T:System.UInt16" />, <see cref="T:System.Int32" />, <see 
>cref="T:System.UInt32" />, <see cref="T:System.Int64" />, <see cref="T:System.UInt64" 
>/>, <see cref="T:System.Char" />, <see cref="T:System.Double" />, and <see 
>cref="T:System.Single" />.</block>
>           </para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="IsPointerImpl">
>       <MemberSignature Language="ILASM" Value=".method family hidebysig virtual 
>abstract bool IsPointerImpl()" />
>       <MemberSignature Language="C#" Value="protected abstract bool 
>IsPointerImpl();" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Boolean</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para>When overridden in a derived class, implements the <see 
>cref="P:System.Type.IsPointer" /> property and determines whether the
> <see cref="T:System.Type" /> is a pointer.</para>
>         </summary>
>         <returns>
>           <para>
>             <see langword="true" /> if the <see cref="T:System.Type" /> is a 
>pointer; otherwise, <see langword="false" />. </para>
>         </returns>
>         <remarks>
>           <para>
>             <block subset="none" type="behaviors">As described above.</block>
>           </para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="IsByRefImpl">
>       <MemberSignature Language="ILASM" Value=".method family hidebysig virtual 
>abstract bool IsByRefImpl()" />
>       <MemberSignature Language="C#" Value="protected abstract bool IsByRefImpl();" 
>/>
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Boolean</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para>When overridden in a derived class, implements the <see 
>cref="P:System.Type.IsByRef" />
> property and determines whether the <see cref="T:System.Type" /> is passed by 
>reference.</para>
>         </summary>
>         <returns>
>           <para>
>             <see langword="true" /> if the <see cref="T:System.Type" /> is passed by 
>reference; otherwise, <see langword="false" />. </para>
>         </returns>
>         <remarks>
>           <para>
>             <block subset="none" type="behaviors">As described above.</block>
>           </para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="IsArrayImpl">
>       <MemberSignature Language="ILASM" Value=".method family hidebysig virtual 
>abstract bool IsArrayImpl()" />
>       <MemberSignature Language="C#" Value="protected abstract bool IsArrayImpl();" 
>/>
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Boolean</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para>When overridden in a derived class implements the <see 
>cref="P:System.Type.IsArray" /> property returning a
> <see cref="T:System.Boolean" /> value that indicates whether
>    the type represented by the current instance is an array.</para>
>         </summary>
>         <returns>
>           <para>
>             <see langword="true" /> if the <see cref="T:System.Type" /> is an array; 
>otherwise, <see langword="false" />. </para>
>         </returns>
>         <remarks>
>           <para>An instance of the <see cref="T:System.Array" /> class is required 
>to return <see langword="false" /> because it is an object, not an
>    array.<block subset="none" type="behaviors">As described above.</block></para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetAttributeFlagsImpl">
>       <MemberSignature Language="ILASM" Value=".method family hidebysig virtual 
>abstract valuetype System.Reflection.TypeAttributes GetAttributeFlagsImpl()" />
>       <MemberSignature Language="C#" Value="protected abstract TypeAttributes 
>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="P:System.Type.Attributes" />
> property and returns the attributes specified for the type represented by the 
>current instance.</para>
>         </summary>
>         <returns>
>           <para>A <see cref="T:System.Reflection.TypeAttributes" /> value that 
>signifies the attributes of the
>    type represented by the current instance.</para>
>         </returns>
>         <remarks>
>           <block subset="none" type="behaviors">
>             <para>This property is read-only.</para>
>             <para>This method returns a <see 
>cref="T:System.Reflection.TypeAttributes" /> value that indicates the attributes set 
>in
>       the metadata of the type represented by the current
>       instance.</para>
>           </block>
>           <para>
>             <block subset="none" type="usage">Use this property to determine 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="GetDefaultMembers">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig virtual 
>class System.Reflection.MemberInfo[] GetDefaultMembers()" />
>       <MemberSignature Language="C#" Value="public virtual MemberInfo[] 
>GetDefaultMembers();" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Reflection.MemberInfo[]</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para>Returns an array of <see cref="T:System.Reflection.MemberInfo" /> 
>objects that reflect the default members
>    defined in the type represented by the current instance.</para>
>         </summary>
>         <returns>
>           <para>An array of <see cref="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.</para>
>         </returns>
>         <remarks>
>           <para>
>             <block subset="none" type="behaviors">The members returned
>       by this method have the <see cref="T:System.Reflection.DefaultMemberAttribute" 
>/>
>       attribute.</block>
>           </para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetNestedType">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig virtual 
>abstract class System.Type GetNestedType(string name, valuetype 
>System.Reflection.BindingFlags bindingAttr)" />
>       <MemberSignature Language="C#" Value="public abstract Type 
>GetNestedType(string name, BindingFlags bindingAttr);" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Type</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="name" Type="System.String" />
>         <Parameter Name="bindingAttr" Type="System.Reflection.BindingFlags" />
>       </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="name">A <see cref="T:System.String" /> containing the name of 
>the nested type to return. Specify the unqualified name of the nested type. <block 
>subset="none" type="note">For example, for a type B nested within A, if typeA 
>represents the type object for A, the correct invocation is 
>typeA.GetNestedType("B").</block></param>
>         <param name="bindingAttr">
>           <para>A bitwise combination of <see 
>cref="T:System.Reflection.BindingFlags" /> values that control the binding process. 
>If zero is specified, this method returns <see langword="null" /> . </para>
>         </param>
>         <returns>
>           <para>A <see cref="T:System.Type" /> object representing the nested type 
>that
>    matches the specified criteria, if found; otherwise, <see langword="null" />. 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="null" /> 
> .</para>
>         </returns>
>         <exception cref="T:System.ArgumentNullException">
>           <paramref name="name" /> is <see langword="null" />. </exception>
>         <remarks>
>           <para>The following <see cref="T:System.Reflection.BindingFlags" /> are 
>used to define which
>    members to include in the search:</para>
>           <list type="bullet">
>             <item>
>               <term>
>       
>       Specify either <see cref="F:System.Reflection.BindingFlags.Instance" /> or 
><see cref="F:System.Reflection.BindingFlags.Static" />
>       to get a return value other than <see langword="null" />.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.Public" /> to include 
>public members in
>       the search.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.NonPublic" /> to include 
>non-public members
>       (that is, private and protected members) in the search.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.FlattenHierarchy" /> to 
>include
>       static members declared in ancestors in the search.</term>
>             </item>
>           </list>
>           <para>The following <see cref="T:System.Reflection.BindingFlags" /> values 
>can be used to change how the
> search works:</para>
>           <list type="bullet">
>             <item>
>               <term>
>                 <see cref="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="F:System.Reflection.BindingFlags.IgnoreCase" /> to ignore 
>the case of
>    <paramref name="name" />.</term>
>             </item>
>           </list>
>           <para>
>             <block subset="none" type="note">For more information, see <see 
>cref="T:System.Reflection.BindingFlags" />.</block>
>           </para>
>         </remarks>
>         <permission 
>cref="T:System.Security.Permissions.ReflectionPermission">Requires permission to 
>retrieve information on non-public members of types in loaded assemblies. See <see 
>cref="F:System.Security.Permissions.ReflectionPermissionFlag.TypeInformation" 
>/>.</permission>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetNestedTypes">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig virtual 
>abstract class System.Type[] GetNestedTypes(valuetype System.Reflection.BindingFlags 
>bindingAttr)" />
>       <MemberSignature Language="C#" Value="public abstract Type[] 
>GetNestedTypes(BindingFlags bindingAttr);" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Type[]</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="bindingAttr" Type="System.Reflection.BindingFlags" />
>       </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="bindingAttr">
>           <para>A bitwise combination of <see 
>cref="T:System.Reflection.BindingFlags" /> values that control the binding process. 
>If zero is specified, this method returns <see langword="null" /> . </para>
>         </param>
>         <returns>
>           <para>An array of <see cref="T:System.Type" /> objects representing all 
>types nested within the type
>    represented by the current instance that match the specified binding constraints,
>    if any. Otherwise, returns an empty <see cref="T:System.Type" /> array. If the 
>type reflected by the current instance is
>    contained in a loaded assembly, the type that matches the specified criteria is
>    not public, and the caller does not have sufficient permission, returns only
>    public types.</para>
>         </returns>
>         <remarks>
>           <para>The following <see cref="T:System.Reflection.BindingFlags" /> are 
>used to define which
>    members to include in the search:</para>
>           <list type="bullet">
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.Public" /> to include 
>public members in
>       the search.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.NonPublic" /> to include 
>non-public members
>       (that is, private and protected members) in the search.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.FlattenHierarchy" /> to 
>include
>       static members declared in ancestors in the search.</term>
>             </item>
>           </list>
>           <para>The following <see cref="T:System.Reflection.BindingFlags" /> values 
>can be used to change how the
> search works:</para>
>           <list type="bullet">
>             <item>
>               <term>
>                 <see cref="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="none" type="note">For more information, see <see 
>cref="T:System.Reflection.BindingFlags" />.</block>
>           </para>
>         </remarks>
>         <permission 
>cref="T:System.Security.Permissions.ReflectionPermission">Requires permission to 
>retrieve information on non-public members of types in loaded assemblies. See <see 
>cref="F:System.Security.Permissions.ReflectionPermissionFlag.TypeInformation" 
>/>.</permission>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetPropertyImpl">
>       <MemberSignature Language="ILASM" Value=".method family hidebysig virtual 
>abstract class System.Reflection.PropertyInfo GetPropertyImpl(string 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="C#" Value="protected abstract PropertyInfo 
>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="name" Type="System.String" />
>         <Parameter Name="bindingAttr" Type="System.Reflection.BindingFlags" />
>         <Parameter Name="binder" Type="System.Reflection.Binder" />
>         <Parameter Name="returnType" Type="System.Type" />
>         <Parameter Name="types" Type="System.Type[]" />
>         <Parameter Name="modifiers" Type="System.Reflection.ParameterModifier[]" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para>When overridden in a derived class implements the 
>    <see 
>cref="M:System.Type.GetProperty(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[])"
> /> 
>    method and returns a <see cref="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="name">A <see cref="T:System.String" /> containing the name of 
>the property to be returned.</param>
>         <param name="bindingAttr">
>           <para>A bitwise combination of <see 
>cref="T:System.Reflection.BindingFlags" /> values that control the binding process. 
>If zero is specified, this method returns <see langword="null" /> . </para>
>         </param>
>         <param name="binder">
>           <para>A <see cref="T:System.Reflection.Binder" /> object that defines a 
>set of properties and enables the binding, coercion of argument types, and invocation 
>of members using reflection. Specify <see langword="null" /> to use the <see 
>cref="P:System.Type.DefaultBinder" /> .</para>
>         </param>
>         <param name=" returnType">A <see cref="T:System.Type" /> object that 
>represents the type of the property to be returned.</param>
>         <param name="types">
>           <para>An array of <see cref="T:System.Type" /> objects. The elements 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="F:System.Type.EmptyTypes" /> to obtain a property that is not indexed.</para>
>         </param>
>         <param name="modifiers">The only defined value for this parameter is <see 
>langword="null" /> .</param>
>         <returns>
>           <para>A <see cref="T:System.Reflection.PropertyInfo" /> object 
>representing the property that matches the
>    specified search criteria, if found; otherwise, <see langword="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="null" />.</para>
>         </returns>
>         <exception cref="T:System.Reflection.AmbiguousMatchException">More than one 
>property matching the specified criteria was found.</exception>
>         <exception cref="T:System.ArgumentNullException">
>           <para>
>             <paramref name="name" /> or <paramref name="types" /> is <see 
>langword="null" />, or at least one of the elements in <paramref name="types" /> is 
><see langword="null" />.</para>
>         </exception>
>         <exception cref="T:System.ArgumentException">
>           <para>
>             <paramref name="types" /> has more than one dimension.</para>
>         </exception>
>         <remarks>
>           <para>The following <see cref="T:System.Reflection.BindingFlags" /> are 
>used to define which
>    members to include in the search:</para>
>           <list type="bullet">
>             <item>
>               <term>
>       
>       Specify either <see cref="F:System.Reflection.BindingFlags.Instance" /> or 
><see cref="F:System.Reflection.BindingFlags.Static" />
>       to get a return value other than <see langword="null" />.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.Public" /> to include 
>public members in
>       the search.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.NonPublic" /> to include 
>non-public members
>       (that is, private and protected members) in the search.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.FlattenHierarchy" /> to 
>include
>       static members declared in ancestors in the search.</term>
>             </item>
>           </list>
>           <para>The following <see cref="T:System.Reflection.BindingFlags" /> values 
>can be used to change how the
> search works:</para>
>           <list type="bullet">
>             <item>
>               <term>
>                 <see cref="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="F:System.Reflection.BindingFlags.IgnoreCase" /> to ignore 
>the case of
>    <paramref name="name" />.</term>
>             </item>
>           </list>
>           <para>
>             <block subset="none" type="note">For more information, see <see 
>cref="T:System.Reflection.BindingFlags" />.</block>
>           </para>
>           <para>
>             <block subset="none" type="behaviors"> 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 property using reflection is 
>required to
>    specify this internal name in order for the <see langword="PropertyInfo" /> to be 
>returned correctly.
> </block>
>           </para>
>         </remarks>
>         <permission 
>cref="T:System.Security.Permissions.ReflectionPermission">Requires permission to 
>retrieve information on non-public members of types in loaded assemblies. See <see 
>cref="F:System.Security.Permissions.ReflectionPermissionFlag.TypeInformation" 
>/>.</permission>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetEvents">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig virtual 
>abstract class System.Reflection.EventInfo[] GetEvents(valuetype 
>System.Reflection.BindingFlags bindingAttr)" />
>       <MemberSignature Language="C#" Value="public abstract EventInfo[] 
>GetEvents(BindingFlags bindingAttr);" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Reflection.EventInfo[]</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="bindingAttr" Type="System.Reflection.BindingFlags" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para>Returns an array of <see cref="T:System.Reflection.EventInfo" /> 
>objects that reflect the events that are
>    defined in the type represented by the current instance and match the specified
>    binding constraints.</para>
>         </summary>
>         <param name="bindingAttr">
>           <para>A bitwise combination of <see 
>cref="T:System.Reflection.BindingFlags" /> values that control the binding process. 
>If zero is specified, this method returns null. </para>
>         </param>
>         <returns>
>           <para>An array of <see cref="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="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 permission to
>    reflect on non-public objects in loaded assemblies, returns only public
>    events.</para>
>         </returns>
>         <remarks>
>           <para>The following <see cref="T:System.Reflection.BindingFlags" /> are 
>used to define which
>    events to include in the search:</para>
>           <list type="bullet">
>             <item>
>               <term>
>       
>       Specify either <see cref="F:System.Reflection.BindingFlags.Instance" /> or 
><see cref="F:System.Reflection.BindingFlags.Static" />
>       to get a return value other than <see langword="null" />.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.Public" /> to include 
>public events in
>       the search.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.NonPublic" /> to include 
>non-public
>       events (that is, private and protected events) in the
>       search.</term>
>             </item>
>           </list>
>           <para>
>             <block subset="none" type="note">For more information, see <see 
>cref="T:System.Reflection.BindingFlags" />.</block>
>           </para>
>           <para>
>             <block subset="none" type="behaviors">As described above.</block>
>           </para>
>         </remarks>
>         <permission 
>cref="T:System.Security.Permissions.ReflectionPermission">Requires permission to 
>retrieve information on non-public members of types in loaded assemblies. See <see 
>cref="F:System.Security.Permissions.ReflectionPermissionFlag.TypeInformation" 
>/>.</permission>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetEvents">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig virtual 
>class System.Reflection.EventInfo[] GetEvents()" />
>       <MemberSignature Language="C#" Value="public virtual EventInfo[] GetEvents();" 
>/>
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Reflection.EventInfo[]</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para>Returns an array of <see cref="T:System.Reflection.EventInfo" /> 
>objects that reflect the public events
>    defined in the type represented by the current instance.</para>
>         </summary>
>         <returns>
>           <para>An array of <see cref="T:System.Reflection.EventInfo" /> objects 
>that reflect the public events
>    defined in the type represented by the current instance. If no public events
>    are defined in the type represented by the current instance, returns an empty
>    array.</para>
>         </returns>
>         <remarks>
>           <para>
>             <block subset="none" type="behaviors">As described above.</block>
>           </para>
>           <para>
>             <block subset="none" type="default">This version of <see 
>cref="M:System.Type.GetEvents" /> is
>    equivalent to <see cref="M:System.Type.GetEvents" />(<see 
>cref="F:System.Reflection.BindingFlags.Public" /> | <see 
>cref="F:System.Reflection.BindingFlags.Static" /> | <see 
>cref="F:System.Reflection.BindingFlags.Instance" />).</block>
>           </para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetEvent">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig virtual 
>abstract class System.Reflection.EventInfo GetEvent(string name, valuetype 
>System.Reflection.BindingFlags bindingAttr)" />
>       <MemberSignature Language="C#" Value="public abstract EventInfo 
>GetEvent(string name, BindingFlags bindingAttr);" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Reflection.EventInfo</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="name" Type="System.String" />
>         <Parameter Name="bindingAttr" Type="System.Reflection.BindingFlags" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para>Returns a <see cref="T:System.Reflection.EventInfo" /> object 
>reflecting the event that has the
>    specified name, is defined in the type represented by the current instance, and
>    matches the specified binding constraints.</para>
>         </summary>
>         <param name="name">A <see cref="T:System.String" /> containing the name of 
>the event to be returned.</param>
>         <param name="bindingAttr">
>           <para>A bitwise combination of <see 
>cref="T:System.Reflection.BindingFlags" /> values that control the binding process. 
>If zero is specified, this method returns null. </para>
>         </param>
>         <returns>
>           <para>A <see cref="T:System.Reflection.EventInfo" /> object reflecting the 
>event that is named
> <paramref name="name" />, is defined in the type represented by the current 
>instance, and 
>    matches the constraints of <paramref name="bindingAttr" />. If an event
>    matching these criteria is not found, returns <see langword="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="null" />.</para>
>         </returns>
>         <exception cref="T:System.ArgumentNullException">
>           <paramref name="name" /> is <see langword="null" />. </exception>
>         <remarks>
>           <para>The following <see cref="T:System.Reflection.BindingFlags" /> are 
>used to define which
>    events to include in the search:</para>
>           <list type="bullet">
>             <item>
>               <term>
>       
>       Specify either <see cref="F:System.Reflection.BindingFlags.Instance" /> or 
><see cref="F:System.Reflection.BindingFlags.Static" />
>       to get a return value other than <see langword="null" />.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.Public" /> to include 
>public events in
>       the search.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.NonPublic" /> to include 
>non-public
>       events(that is, private and protected events) in the search.</term>
>             </item>
>             <item>
>               <term>
>       Specify <see cref="F:System.Reflection.BindingFlags.FlattenHierarchy" /> to 
>include to include
>       static members declared in ancestors in the search.</term>
>             </item>
>           </list>
>           <para>The following <see cref="T:System.Reflection.BindingFlags" /> value 
>can be used to change how the
> search works:</para>
>           <list type="bullet">
>             <item>
>               <term>
>                 <see cref="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="none" type="note">For more information, see <see 
>cref="T:System.Reflection.BindingFlags" />.</block>
>           </para>
>           <para>
>             <block subset="none" type="behaviors">As described above.</block>
>           </para>
>         </remarks>
>         <permission 
>cref="T:System.Security.Permissions.ReflectionPermission">Requires permission to 
>retrieve information on non-public members of types in loaded assemblies. See <see 
>cref="F:System.Security.Permissions.ReflectionPermissionFlag.TypeInformation" 
>/>.</permission>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetInterfaces">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig virtual 
>abstract class System.Type[] GetInterfaces()" />
>       <MemberSignature Language="C#" Value="public abstract Type[] GetInterfaces();" 
>/>
>       <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="T:System.Type" /> objects representing the 
>interfaces implemented or
>    inherited by the type represented by the current instance. If no interfaces are
>    found, returns an empty <see cref="T:System.Type" /> array.</para>
>         </returns>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetInterface">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig virtual 
>abstract class System.Type GetInterface(string name, bool ignoreCase)" />
>       <MemberSignature Language="C#" Value="public abstract Type GetInterface(string 
>name, bool ignoreCase);" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Type</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="name" Type="System.String" />
>         <Parameter Name="ignoreCase" Type="System.Boolean" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para> Returns the specified interface,
>       specifying whether to do a case-sensitive search.</para>
>         </summary>
>         <param name="name">A <see cref="T:System.String" /> containing the name of 
>the interface to return.</param>
>         <param name="ignoreCase">
>           <para> A <see cref="T:System.Boolean" /> where<see langword=" true" /> 
>indicates that the name search is to be done case-insensitively, and <see 
>langword="false" /> performs a case-sensitive search.</para>
>         </param>
>         <returns>
>           <para>A <see cref="T:System.Type" /> object representing
>    the interface with the specified name, implemented or inherited by the type
>    represented by the instance, if found; otherwise, <see langword="null" />.</para>
>         </returns>
>         <exception cref="T:System.ArgumentNullException">
>           <paramref name="name" /> is <see langword="null" />. </exception>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetConstructors">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig virtual 
>abstract class System.Reflection.ConstructorInfo[] GetConstructors(valuetype 
>System.Reflection.BindingFlags bindingAttr)" />
>       <MemberSignature Language="C#" Value="public abstract ConstructorInfo[] 
>GetConstructors(BindingFlags bindingAttr);" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Reflection.ConstructorInfo[]</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="bindingAttr" Type="System.Reflection.BindingFlags" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para>Returns an array of constructors defined in the type represented by 
>the
>       current instance, under the specified binding constraints.</para>
>         </summary>
>         <param name="bindingAttr">
>           <para>A bitwise combination of <see 
>cref="T:System.Reflection.BindingFlags" /> values that control the binding process. 
>If zero is specified, this method returns <see langword="null" /> . </para>
>         </param>
>         <returns>
>           <para>An array of <see cref="T:System.Reflection.ConstructorInfo" /> 
>objects that reflect the constructors that
>    are defined in the type represented by the current instance and match the
>    constraints of <paramref name="bindingAttr" />. If <see 
>cref="F:System.Reflection.BindingFlags.NonPublic" /> and <see 
>cref="F:System.Reflection.BindingFlags.Static" /> are specified, this array
>    includes the type initializer if it is defined. If no constructors meeting the
>    constraints of <paramref name="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 sufficient
>    permission, returns <see langword="null" /> .</para>
>         </returns>
>         <remarks>
>           <para>The following <see cref="T:System.Reflection.BindingFlags" /> are 
>used to define which
>    constructors to include in the search:</para>
>           <list type="bullet">
>             <item>
>               <term>
>       
>       Specify either <see cref="F:System.Reflection.BindingFlags.Instance" /> or 
><see cref="F:System.Reflection.BindingFlags.Static" />
>       to get a return value other than <see langword="null" />.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.Public" /> to include 
>public constructors
>       in the search.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.NonPublic" /> to include 
>non-public
>       constructors (that is, private and protected constructors) in the
>       search.</term>
>             </item>
>           </list>
>           <para>
>             <block subset="none" type="note">For more information, see <see 
>cref="T:System.Reflection.BindingFlags" />.</block>
>           </para>
>           <para>
>             <block subset="none" type="behaviors">As described above.</block>
>           </para>
>         </remarks>
>         <permission 
>cref="T:System.Security.Permissions.ReflectionPermission">Requires permission to 
>retrieve information on non-public members of types in loaded assemblies. See <see 
>cref="F:System.Security.Permissions.ReflectionPermissionFlag.TypeInformation" 
>/>.</permission>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetArrayRank">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig virtual 
>int32 GetArrayRank()" />
>       <MemberSignature Language="C#" Value="public virtual int GetArrayRank();" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Int32</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para> Returns the number of dimensions in the current <see 
>cref="T:System.Type" />.</para>
>         </summary>
>         <returns>
>           <para>A <see cref="T:System.Int32" /> containing the number of dimensions 
>in the  current
> <see cref="T:System.Type" />.</para>
>         </returns>
>         <exception cref="T:System.ArgumentException">The current <see 
>cref="T:System.Type" /> is  not an array.</exception>
>       </Docs>
>       <Excluded>0</Excluded>
>     </Member>
>     <Member MemberName="GetHashCode">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig virtual 
>int32 GetHashCode()" />
>       <MemberSignature Language="C#" Value="public override int GetHashCode();" />
>       <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="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="none" type="note">This method
>       overrides <see cref="M:System.Object.GetHashCode" />
>       .</block>
>           </para>
>         </remarks>
>       </Docs>
>       <Excluded>0</Excluded>
>     </Member>
>     <Member MemberName="ToString">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig virtual 
>string ToString()" />
>       <MemberSignature Language="C#" Value="public override string ToString();" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.String</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para> Returns a <see cref="T:System.String" /> representation of the 
>current <see cref="T:System.Type" />.
>    </para>
>         </summary>
>         <returns>
>           <para>Returns <see cref="P:System.Type.FullName" /> .</para>
>         </returns>
>         <remarks>
>           <para>
>             <block subset="none" type="note">This method
>       overrides <see cref="M:System.Object.ToString" />
>       .</block>
>           </para>
>         </remarks>
>       </Docs>
>       <Excluded>0</Excluded>
>     </Member>
>     <Member MemberName="GetType">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig static class 
>System.Type GetType(string typeName, bool throwOnError, bool ignoreCase)" />
>       <MemberSignature Language="C#" Value="public static Type GetType(string 
>typeName, bool throwOnError, bool ignoreCase);" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Type</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="typeName" Type="System.String" />
>         <Parameter Name="throwOnError" Type="System.Boolean" />
>         <Parameter Name="ignoreCase" Type="System.Boolean" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para>Returns the <see cref="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="T:System.Type" />.</para>
>         </summary>
>         <param name="typeName">A <see cref="T:System.String" /> containing the name 
>of the <see cref="T:System.Type" /> to return.</param>
>         <param name="throwOnError">
>           <para> A <see cref="T:System.Boolean" />. Specify <see langword="true" /> 
>to throw a <see cref="T:System.TypeLoadException" /> if an error occurs while loading 
>the <see cref="T:System.Type" />. Specify <see langword="false" /> to ignore errors 
>while loading the <see cref="T:System.Type" />.</para>
>         </param>
>         <param name="ignoreCase">
>           <para> A <see cref="T:System.Boolean" />. Specify<see langword=" true" /> 
>to perform a case-insensitive search for <paramref name="typeName." /> Specify <see 
>langword="false" /> to perform a case-sensitive search for <paramref name="typeName" 
>/> .</para>
>         </param>
>         <returns>
>           <para>The <see cref="T:System.Type" /> with the specified name, if found; 
>otherwise, <see langword="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="null" />.</para>
>         </returns>
>         <exception cref="T:System.ArgumentNullException">
>           <paramref name="typeName" /> is <see langword="null" />.</exception>
>         <exception cref="T:System.Reflection.TargetInvocationException">A type 
>initializer was invoked and threw an exception.</exception>
>         <exception cref="T:System.TypeLoadException">
>           <paramref name="throwOnError" /> is <see langword="true" /> and an error 
>was encountered while loading the selected <see cref="T:System.Type" />.</exception>
>         <remarks>
>           <para>
>             <paramref name="typeName" /> can be a simple
>    type name, a fully qualified name, or a complex name that includes an assembly
>    name. <block subset="none" type="note"><see 
>cref="P:System.Type.AssemblyQualifiedName" />
>    returns a fully qualified type name including nested types
>    and the assembly name. </block></para>
>           <para>If <paramref name="typeName" /> includes only the name of the <see 
>cref="T:System.Type" />, this method searches in the
> calling object's assembly, then in the mscorlib.dll assembly. If
> <paramref name="typeName" /> 
> is fully qualified with the partial or complete assembly name, this
> method searches in the specified assembly.</para>
>           <block subset="none" type="note">
>             <para>
>               <see langword="" />
>             </para>
>             <para> The following table shows calls to
> <see langword="GetType" /> for various types.</para>
>             <list type="table">
>               <listheader>
>                 <term>To Get</term>
>                 <description>Use</description>
>               </listheader>
>               <item>
>                 <term> An
>          unmanaged pointer to <see langword="MyType" /></term>
>                 <description>
>                   <c>Type.GetType("MyType*")</c>
>                 </description>
>               </item>
>               <item>
>                 <term> An
>          unmanaged pointer to a pointer to <see langword="MyType" /></term>
>                 <description>
>                   <c>Type.GetType("MyType**")</c>
>                 </description>
>               </item>
>               <item>
>                 <term> A
>          managed pointer
>          or
>          reference to <see langword="MyType" /></term>
>                 <description>
>                   <c>Type.GetType("MyType&amp;")</c>. Note that unlike pointers, 
>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</term>
>                 <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-dimensional
> <see langword="Object" /> 
> 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 lower 
>bounds</term>
>                 <description>
>                   <c>Type.GetType("MyArray[*,*]")</c>or 
><c>Type.GetType("MyArray[,]")</c></description>
>               </item>
>             </list>
>           </block>
>         </remarks>
>         <permission 
>cref="T:System.Security.Permissions.ReflectionPermission">Requires permission to 
>retrieve information on non-public members of types in loaded assemblies. See <see 
>cref="F:System.Security.Permissions.ReflectionPermissionFlag.TypeInformation" 
>/>.</permission>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetType">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig static class 
>System.Type GetType(string typeName, bool throwOnError)" />
>       <MemberSignature Language="C#" Value="public static Type GetType(string 
>typeName, bool throwOnError);" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Type</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="typeName" Type="System.String" />
>         <Parameter Name="throwOnError" Type="System.Boolean" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para>Returns the <see cref="T:System.Type" /> with the specified name, 
>optionally throwing an
>    exception if an error occurs while loading the <see cref="T:System.Type" /> 
>.</para>
>         </summary>
>         <param name="typeName">A <see cref="T:System.String" /> containing the 
>case-sensitive name of the <see cref="T:System.Type" /> to return.</param>
>         <param name="throwOnError">
>           <para>A <see cref="T:System.Boolean" />. Specify <see langword="true" /> 
>to throw a <see cref="T:System.TypeLoadException" /> if an error occurs while loading 
>the <see cref="T:System.Type" />. Specify <see langword="false" /> to ignore errors 
>while loading the <see cref="T:System.Type" />.</para>
>         </param>
>         <returns>
>           <para>The <see cref="T:System.Type" /> with the specified name, if found; 
>otherwise, <see langword="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="null" /> .</para>
>         </returns>
>         <exception cref="T:System.ArgumentNullException">
>           <paramref name="typeName" /> is <see langword="null" />. </exception>
>         <exception cref="T:System.Reflection.TargetInvocationException">A type 
>initializer was invoked and threw an exception.</exception>
>         <exception cref="T:System.TypeLoadException">
>           <paramref name="throwOnError" /> is <see langword="true" /> and an error 
>was encountered while loading the <see cref="T:System.Type" />.</exception>
>         <remarks>
>           <para>This method is equivalent to <see 
>cref="M:System.Type.GetType(System.String,System.Boolean,System.Boolean)" 
>/>(<paramref name="name" />, <paramref name="throwOnError" />, 
> <see langword="false" />).</para>
>           <para>
>             <paramref name="typeName" /> can be a simple
> type name, a fully qualified name, or a complex name that includes an assembly
> name specification. If <paramref name="typeName" /> includes only the name of the 
><see cref="T:System.Type" />, this method searches in the
> calling object's assembly, then in the mscorlib.dll assembly. If
> <paramref name="typeName" /> 
> is fully qualified with the partial or complete assembly name, this method
> searches in the specified assembly.</para>
>           <para>
>             <block subset="none" type="note">
>               <see cref="P:System.Type.AssemblyQualifiedName" /> can return a fully
> qualified type name including nested types and the assembly name. For complete
> details, see <see 
>cref="M:System.Type.GetType(System.String,System.Boolean,System.Boolean)" />(<see 
>cref="T:System.String" />, <see cref="T:System.Boolean" />, <see 
>cref="T:System.Boolean" />). </block>
>           </para>
>         </remarks>
>         <permission 
>cref="T:System.Security.Permissions.ReflectionPermission">Requires permission to 
>retrieve information on non-public objects. See <see 
>cref="F:System.Security.Permissions.ReflectionPermissionFlag.TypeInformation" 
>qualify="true" /></permission>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetType">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig static class 
>System.Type GetType(string typeName)" />
>       <MemberSignature Language="C#" Value="public static Type GetType(string 
>typeName);" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Type</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="typeName" Type="System.String" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para>Returns the <see cref="T:System.Type" /> with the specified 
>name.</para>
>         </summary>
>         <param name="typeName">A <see cref="T:System.String" /> containing the 
>case-sensitive name of the <see cref="T:System.Type" /> to return.</param>
>         <returns>
>           <para>The <see cref="T:System.Type" /> with the specified name, if found; 
>otherwise, <see langword="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="null" />.</para>
>         </returns>
>         <exception cref="T:System.ArgumentNullException">
>           <paramref name="typeName" /> is <see langword="null" />. </exception>
>         <exception cref="T:System.Reflection.TargetInvocationException">A type 
>initializer was invoked and threw an exception.</exception>
>         <remarks>
>           <para>This method is equivalent to <see 
>cref="M:System.Type.GetType(System.String,System.Boolean,System.Boolean)" 
>/>(<paramref name="name" />, <see langword="false" />,
> <see langword="false" />).</para>
>           <para>
>             <paramref name="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="typeName" /> includes 
>only the name of the <see cref="T:System.Type" />, this method
> searches in the calling object's assembly, then in the mscorlib.dll assembly. If
> <paramref name="typeName" /> 
> is fully qualified with the partial or complete assembly name, this method
> searches in the specified assembly.</para>
>           <para>
>             <block subset="none" type="note">
>               <see cref="P:System.Type.AssemblyQualifiedName" /> can return a fully 
>qualified type name including
>    nested types and the assembly name. For complete details, see <see 
>cref="M:System.Type.GetType(System.String,System.Boolean,System.Boolean)" />(<see 
>cref="T:System.String" />, <see cref="T:System.Boolean" />, <see 
>cref="T:System.Boolean" />).</block>
>           </para>
>         </remarks>
>         <permission 
>cref="T:System.Security.Permissions.ReflectionPermission">Requires permission to 
>retrieve information on non-public members of types in loaded assemblies. See <see 
>cref="F:System.Security.Permissions.ReflectionPermissionFlag.TypeInformation" 
>/>.</permission>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="InvokeMember">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig instance 
>object InvokeMember(string name, valuetype System.Reflection.BindingFlags invokeAttr, 
>class System.Reflection.Binder binder, object target, class System.Object[] args, 
>class System.Globalization.CultureInfo culture)" />
>       <MemberSignature Language="C#" Value="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="name" Type="System.String" />
>         <Parameter Name="invokeAttr" Type="System.Reflection.BindingFlags" />
>         <Parameter Name="binder" Type="System.Reflection.Binder" />
>         <Parameter Name="target" Type="System.Object" />
>         <Parameter Name="args" Type="System.Object[]" />
>         <Parameter Name="culture" Type="System.Globalization.CultureInfo" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para>Invokes the specified member, using the specified binding constraints
>       and matching the specified argument list and culture.</para>
>         </summary>
>         <param name="name">
>           <para>A <see cref="T:System.String" /> containing the name of the 
>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="F:System.String.Empty" /> to invoke that member. <block subset="none" 
>type="note">For more information on default members, see <see 
>cref="T:System.Reflection.DefaultMemberAttribute" /> .</block></para>
>         </param>
>         <param name="invokeAttr">
>           <para>A bitwise combination of <see 
>cref="T:System.Reflection.BindingFlags" /> values that control the binding process. 
>If zero is specified, <see cref="F:System.Reflection.BindingFlags.Public" /> | <see 
>cref="F:System.Reflection.BindingFlags.Instance" /> is used by default. </para>
>         </param>
>         <param name="binder">
>           <para>A <see cref="T:System.Reflection.Binder" /> object that defines a 
>set of properties and enables the binding, coercion of argument types, and invocation 
>of members using reflection. Specify <see langword="null" /> to use the <see 
>cref="P:System.Type.DefaultBinder" /> .</para>
>         </param>
>         <param name="target">A <see cref="T:System.Object" /> on which to invoke the 
>member that matches the other specified criteria. If the matching member is <see 
>langword="static" /> , this parameter is ignored.</param>
>         <param name="args">An array of objects containing the arguments to pass to 
>the member to be invoked. The elements of this array are of the same 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="null" /> for a member 
>that has no parameters.</param>
>         <param name="culture">
>           <para>The only defined value for this parameter is <see langword="null" /> 
>.</para>
>         </param>
>         <returns>
>           <para>A <see cref="T:System.Object" />
> containing the return value of the invoked member. If the invoked member does
> not have a return value, returns a <see cref="T:System.Object" /> containing <see 
>cref="T:System.Void" /> .</para>
>         </returns>
>         <exception cref="T:System.ArgumentNullException">
>           <para>
>             <paramref name="n" />
>             <paramref name="ame" /> is <see langword="null" />.</para>
>         </exception>
>         <exception cref="T:System.ArgumentException">
>           <para>
>             <paramref name="args" /> has more than one dimension.</para>
>           <para>-or-</para>
>           <para>
>             <paramref name="invokeAttr" /> is not a valid <see 
>cref="T:System.Reflection.BindingFlags" /> value.</para>
>           <para>-or-</para>
>           <para>The member to be invoked is a constructor and <see 
>cref="F:System.Reflection.BindingFlags.CreateInstance" /> is not specified in 
><paramref name="invokeAttr" />.</para>
>           <para>-or-</para>
>           <para>The member to be invoked is a method that is not a type initializer 
>or instance constructor, and <see 
>cref="F:System.Reflection.BindingFlags.InvokeMethod" /> is not specified in <paramref 
>name="invokeAttr" />.</para>
>           <para>-or-</para>
>           <para>The member to be accessed is a field, and neither <see 
>cref="F:System.Reflection.BindingFlags.GetField" /> nor <see 
>cref="F:System.Reflection.BindingFlags.SetField" /> is specified in <paramref 
>name="invokeAttr" />.</para>
>           <para>-or-</para>
>           <para>The member to be accessed is a property, and neither <see 
>cref="F:System.Reflection.BindingFlags.GetProperty" /> nor <see 
>cref="F:System.Reflection.BindingFlags.SetProperty" /> is specified in <paramref 
>name="invokeAttr" />.</para>
>           <para>-or-</para>
>           <para>
>             <paramref name="invokeAttr" /> contains <see 
>cref="F:System.Reflection.BindingFlags.CreateInstance" /> and at least one of <see 
>cref="F:System.Reflection.BindingFlags.InvokeMethod" />, <see 
>cref="F:System.Reflection.BindingFlags.GetField" />, <see 
>cref="F:System.Reflection.BindingFlags.SetField" />, <see 
>cref="F:System.Reflection.BindingFlags.GetProperty" />, or <see 
>cref="F:System.Reflection.BindingFlags.SetProperty" />.</para>
>           <para>-or-</para>
>           <para>
>             <paramref name="invokeAttr" /> contains both <see 
>cref="F:System.Reflection.BindingFlags.GetField" /> and <see 
>cref="F:System.Reflection.BindingFlags.SetField" />.</para>
>           <para>-or-</para>
>           <para>
>             <paramref name="invokeAttr" /> contains both <see 
>cref="F:System.Reflection.BindingFlags.GetProperty" /> and <see 
>cref="F:System.Reflection.BindingFlags.SetProperty" />.</para>
>           <para>-or-</para>
>           <para>
>             <paramref name="invokeAttr" /> contains <see 
>cref="F:System.Reflection.BindingFlags.InvokeMethod" />and at least one of <see 
>cref="F:System.Reflection.BindingFlags.SetField" /> or <see 
>cref="F:System.Reflection.BindingFlags.SetProperty" />.</para>
>           <para>-or-</para>
>           <para>
>             <paramref name="invokeAttr" /> contains <see 
>cref="F:System.Reflection.BindingFlags.SetField" /> and <paramref name="args" /> has 
>more than one element.</para>
>         </exception>
>         <exception cref="T:System.MissingFieldException">A field or property 
>matching the specified criteria was not found.</exception>
>         <exception cref="T:System.MissingMethodException">A method matching the 
>specified criteria was not found.</exception>
>         <exception cref="T:System.MethodAccessException">The requested member is 
>non-public and the caller does not have the required permission.</exception>
>         <exception cref="T:System.Reflection.TargetException">The member matching 
>the specified criteria cannot be invoked on <paramref name="target" />.</exception>
>         <exception cref="T:System.Reflection.TargetInvocationException">The member 
>matching the specified criteria threw an exception.</exception>
>         <exception cref="T:System.Reflection.AmbiguousMatchException">More than one 
>member matches the specified criteria.</exception>
>         <remarks>
>           <para>This version of <see 
>cref="M:System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[])"
> /> is equivalent to <see 
>cref="M:System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[])"
> />(
> <paramref name="name" />, <paramref name="invokeAttr" />, <paramref name="binder" 
>/>, <paramref name="target" />, <paramref name="args" />, 
> <see langword="null" />, <paramref name="culture" />, <see langword="null" /> ). 
></para>
>         </remarks>
>         <permission 
>cref="T:System.Security.Permissions.ReflectionPermission">Requires permission to 
>retrieve information on non-public members of types in loaded assemblies. See <see 
>cref="F:System.Security.Permissions.ReflectionPermissionFlag.TypeInformation" 
>/>.</permission>
>         <example>
>           <para> For an example that demonstrates
>    <see 
>cref="M:System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[])"
> /> , see <see 
>cref="M:System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[])"
> />(
>    <see cref="T:System.String" />, <see cref="T:System.Reflection.BindingFlags" />,
>    <see cref="T:System.Reflection.Binder" />, <see cref="T:System.Object" />, <see 
>cref="T:System.Object" />[], <see cref="T:System.Reflection.ParameterModifier" />[], 
><see cref="T:System.Globalization.CultureInfo" />, <see cref="T:System.String" />[]).
>       </para>
>         </example>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="InvokeMember">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig instance 
>object InvokeMember(string name, valuetype System.Reflection.BindingFlags invokeAttr, 
>class System.Reflection.Binder binder, object target, class System.Object[] args)" />
>       <MemberSignature Language="C#" Value="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="name" Type="System.String" />
>         <Parameter Name="invokeAttr" Type="System.Reflection.BindingFlags" />
>         <Parameter Name="binder" Type="System.Reflection.Binder" />
>         <Parameter Name="target" Type="System.Object" />
>         <Parameter Name="args" Type="System.Object[]" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para>Invokes the specified member, using the specified binding 
>constraints and
>       matching the specified argument list.</para>
>         </summary>
>         <param name="name">
>           <para>A <see cref="T:System.String" /> containing the name of the 
>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="F:System.String.Empty" /> to invoke that member. <block subset="none" 
>type="note">For more information on default members, see <see 
>cref="T:System.Reflection.DefaultMemberAttribute" /> .</block></para>
>         </param>
>         <param name="invokeAttr">A bitwise combination of <see 
>cref="T:System.Reflection.BindingFlags" /> values that control the binding process. 
>If zero is specified, <see cref="F:System.Reflection.BindingFlags.Public" /> | <see 
>cref="F:System.Reflection.BindingFlags.Instance" /> is used by default.</param>
>         <param name="binder">
>           <para>A <see cref="T:System.Reflection.Binder" /> object that defines a 
>set of properties and enables the binding, coercion of argument types, and invocation 
>of members using reflection. Specify <see langword="null" /> to use the <see 
>cref="P:System.Type.DefaultBinder" /> .</para>
>         </param>
>         <param name="target">A <see cref="T:System.Object" /> on which to invoke the 
>member that matches the other specified criteria. If the matching member is <see 
>langword="static" /> , this parameter is ignored.</param>
>         <param name="args">An array of objects containing the arguments to pass to 
>the member to be invoked. The elements of this array are of the same 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="null" /> for a member 
>that has no parameters.</param>
>         <returns>
>           <para>A <see cref="T:System.Object" />
> containing the return value of the invoked member. If the invoked member does
> not have a return value, returns a <see cref="T:System.Object" /> containing <see 
>cref="T:System.Void" /> .</para>
>         </returns>
>         <exception cref="T:System.ArgumentNullException">
>           <para>
>             <paramref name="name" /> is <see langword="null" />.</para>
>         </exception>
>         <exception cref="T:System.ArgumentException">
>           <para>
>             <paramref name="args" /> has more than one dimension.</para>
>           <para>-or-</para>
>           <para>
>             <paramref name="invokeAttr" /> is not a valid <see 
>cref="T:System.Reflection.BindingFlags" /> value.</para>
>           <para>-or-</para>
>           <para>The member to be invoked is a constructor and <see 
>cref="F:System.Reflection.BindingFlags.CreateInstance" /> is not specified in 
><paramref name="invokeAttr" />.</para>
>           <para>-or-</para>
>           <para>The member to be invoked is a method that is not a type initializer 
>or instance constructor, and <see 
>cref="F:System.Reflection.BindingFlags.InvokeMethod" /> is not specified in <paramref 
>name="invokeAttr" />.</para>
>           <para>-or-</para>
>           <para>The member to be accessed is a field, and neither <see 
>cref="F:System.Reflection.BindingFlags.GetField" /> nor <see 
>cref="F:System.Reflection.BindingFlags.SetField" /> is specified in <paramref 
>name="invokeAttr" />.</para>
>           <para>-or-</para>
>           <para>The member to be accessed is a property, and neither <see 
>cref="F:System.Reflection.BindingFlags.GetProperty" /> nor <see 
>cref="F:System.Reflection.BindingFlags.SetProperty" /> is specified in <paramref 
>name="invokeAttr" />.</para>
>           <para>-or-</para>
>           <para>
>             <paramref name="invokeAttr" /> contains <see 
>cref="F:System.Reflection.BindingFlags.CreateInstance" /> and at least one of <see 
>cref="F:System.Reflection.BindingFlags.InvokeMethod" />, <see 
>cref="F:System.Reflection.BindingFlags.GetField" />, <see 
>cref="F:System.Reflection.BindingFlags.SetField" />, <see 
>cref="F:System.Reflection.BindingFlags.GetProperty" />, or <see 
>cref="F:System.Reflection.BindingFlags.SetProperty" />.</para>
>           <para>-or-</para>
>           <para>
>             <paramref name="invokeAttr" /> contains both <see 
>cref="F:System.Reflection.BindingFlags.GetField" /> and <see 
>cref="F:System.Reflection.BindingFlags.SetField" />.</para>
>           <para>-or-</para>
>           <para>
>             <paramref name="invokeAttr" /> contains both <see 
>cref="F:System.Reflection.BindingFlags.GetProperty" /> and <see 
>cref="F:System.Reflection.BindingFlags.SetProperty" />.</para>
>           <para>-or-</para>
>           <para>
>             <paramref name="invokeAttr" /> contains <see 
>cref="F:System.Reflection.BindingFlags.InvokeMethod" /> and at least one of <see 
>cref="F:System.Reflection.BindingFlags.SetField" /> or <see 
>cref="F:System.Reflection.BindingFlags.SetProperty" />.</para>
>           <para>-or-</para>
>           <para>
>             <paramref name="invokeAttr" /> contains <see 
>cref="F:System.Reflection.BindingFlags.SetField" /> and <paramref name="args" /> has 
>more than one element.</para>
>         </exception>
>         <exception cref="T:System.MissingFieldException">A field or property 
>matching the specified criteria was not found.</exception>
>         <exception cref="T:System.MissingMethodException">A method matching the 
>specified criteria cannot be found.</exception>
>         <exception cref="T:System.MethodAccessException">The requested member is 
>non-public and the caller does not have the required permission.</exception>
>         <exception cref="T:System.Reflection.TargetException">The member matching 
>the specified criteria cannot be invoked on <paramref name="target" />.</exception>
>         <exception cref="T:System.Reflection.TargetInvocationException">The member 
>matching the specified criteria threw an exception.</exception>
>         <exception cref="T:System.Reflection.AmbiguousMatchException">More than one 
>member matches the specified criteria.</exception>
>         <remarks>
>           <para>This version of <see 
>cref="M:System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[])"
> /> is equivalent to <see 
>cref="M:System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[])"
> />(<paramref name="name" />, <paramref name="invokeAttr" />, <paramref name="binder" 
>/>,
> <paramref name="target" />, <paramref name="args" />, <see langword="null" />, <see 
>langword="null" />, 
> <see langword="null" />).</para>
>           <para>
>             <block subset="none" type="note">For a demonstration of the use of
> <see 
>cref="M:System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[])"
> />, see the example for <see 
>cref="M:System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[])"
> />( 
> <see cref="T:System.String" />, <see cref="T:System.Reflection.BindingFlags" />, 
> <see cref="T:System.Reflection.Binder" />, <see cref="T:System.Object" />, <see 
>cref="T:System.Object" />[], <see cref="T:System.Reflection.ParameterModifier" />[], 
><see cref="T:System.Globalization.CultureInfo" />, <see cref="T:System.String" 
>/>[]).</block>
>           </para>
>         </remarks>
>         <permission 
>cref="T:System.Security.Permissions.ReflectionPermission">Requires permission to 
>retrieve information on non-public members of types in loaded assemblies. See <see 
>cref="F:System.Security.Permissions.ReflectionPermissionFlag.TypeInformation" 
>/>.</permission>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetTypeHandle">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig static 
>valuetype System.RuntimeTypeHandle GetTypeHandle(object o)" />
>       <MemberSignature Language="C#" Value="public static RuntimeTypeHandle 
>GetTypeHandle(object o);" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.RuntimeTypeHandle</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="o" Type="System.Object" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para>Returns the handle for the <see cref="T:System.Type" /> of the 
>specified object.</para>
>         </summary>
>         <param name="o">The object for which to get the type handle.</param>
>         <returns>
>           <para>The <see cref="T:System.RuntimeTypeHandle" /> for the <see 
>cref="T:System.Type" /> of the specified <see cref="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="GetTypeFromHandle">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig static class 
>System.Type GetTypeFromHandle(valuetype System.RuntimeTypeHandle handle)" />
>       <MemberSignature Language="C#" Value="public static Type 
>GetTypeFromHandle(RuntimeTypeHandle handle);" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Type</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="handle" Type="System.RuntimeTypeHandle" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para>Gets the <see cref="T:System.Type" /> referenced by the specified 
>type handle.</para>
>         </summary>
>         <param name="handle">The <see cref="T:System.RuntimeTypeHandle" /> object 
>that refers to the desired <see cref="T:System.Type" />.</param>
>         <returns>
>           <para>The <see cref="T:System.Type" /> referenced by the specified <see 
>cref="T:System.RuntimeTypeHandle" />.</para>
>         </returns>
>         <exception cref="T:System.ArgumentNullException">
>           <paramref name="handle" /> is <see langword="null" />.</exception>
>         <exception cref="T:System.Security.SecurityException">The requested type is 
>non-public and outside the current assembly, and the caller does not have the 
>required permission.</exception>
>         <exception cref="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 which they 
>were obtained. </para>
>         </remarks>
>         <permission 
>cref="T:System.Security.Permissions.ReflectionPermission">Requires permission to 
>retrieve information on non-public objects. See <see 
>cref="F:System.Security.Permissions.ReflectionPermissionFlag.TypeInformation" 
>qualify="true" /></permission>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>RuntimeInfrastructure</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetConstructor">
>       <MemberSignature Language="ILASM" Value=".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.ParameterModifier[] modifiers)" />
>       <MemberSignature Language="C#" Value="public ConstructorInfo 
>GetConstructor(BindingFlags bindingAttr, Binder binder, Type[] types, 
>ParameterModifier[] modifiers);" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Reflection.ConstructorInfo</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="bindingAttr" Type="System.Reflection.BindingFlags" />
>         <Parameter Name="binder" Type="System.Reflection.Binder" />
>         <Parameter Name="types" Type="System.Type[]" />
>         <Parameter Name="modifiers" Type="System.Reflection.ParameterModifier[]" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para>Returns a constructor defined in the type represented by the current
>       instance. The parameters of the constructor match the specified argument types
>       and modifiers, under the specified binding constraints.</para>
>         </summary>
>         <param name="bindingAttr">
>           <para>A bitwise combination of <see 
>cref="T:System.Reflection.BindingFlags" /> values that control the binding process. 
>If zero is specified, this method returns null. </para>
>         </param>
>         <param name="binder">
>           <para>A <see cref="T:System.Reflection.Binder" /> object that defines a 
>set of properties and enables the binding, coercion of argument types, and invocation 
>of members using reflection. Specify <see langword="null" /> to use the <see 
>cref="P:System.Type.DefaultBinder" /> .</para>
>         </param>
>         <param name="types">
>           <para>An array of <see cref="T:System.Type" /> objects. The elements 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="modifiers">The only defined value for this parameter is <see 
>langword="null" /> .</param>
>         <returns>
>           <para>A <see cref="T:System.Reflection.ConstructorInfo" /> object that 
>reflects the constructor
>    that matches the specified criteria. If an exact match does not exist,
> <paramref name="binder" /> will attempt to coerce the parameter types specified in 
> <paramref name="types" /> to select a match. If <paramref name="binder" /> is unable 
>to select a 
>    match, returns <see langword="null" /> . If the type represented by the current
>    instance is contained in a loaded assembly, the constructor that matches the
>    specified criteria is not public, and the caller does not have sufficient
>    permissions, returns <see langword="null" />.</para>
>         </returns>
>         <exception cref="T:System.ArgumentNullException">
>           <para>
>             <paramref name="types" /> is <see langword="null" />, or at least one of 
>the elements in <paramref name="types" /> is <see langword="null" />.</para>
>         </exception>
>         <exception cref="T:System.ArgumentException">
>           <para>
>             <paramref name="types" /> has more than one dimension.</para>
>         </exception>
>         <remarks>
>           <para>The following <see cref="T:System.Reflection.BindingFlags" /> are 
>used to define which
>    constructors to include in the search:</para>
>           <list type="bullet">
>             <item>
>               <term>
>       
>       Specify either <see cref="F:System.Reflection.BindingFlags.Instance" /> or 
><see cref="F:System.Reflection.BindingFlags.Static" />
>       to get a return value other than <see langword="null" />.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.Public" /> to include 
>public constructors
>       in the search.</term>
>             </item>
>             <item>
>               <term>
>       
>       Specify <see cref="F:System.Reflection.BindingFlags.NonPublic" /> to include 
>non-public
>       constructors (that is, private and protected constructors) in the
>       search.</term>
>             </item>
>           </list>
>           <para>
>             <block subset="none" type="note">For more information, see <see 
>cref="T:System.Reflection.BindingFlags" />.</block>
>           </para>
>         </remarks>
>         <permission 
>cref="T:System.Security.Permissions.ReflectionPermission">Requires permission to 
>retrieve information on non-public members of types in loaded assemblies. See <see 
>cref="F:System.Security.Permissions.ReflectionPermissionFlag.TypeInformation" 
>/>.</permission>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetConstructor">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig instance 
>class System.Reflection.ConstructorInfo GetConstructor(class System.Type[] types)" />
>       <MemberSignature Language="C#" Value="public ConstructorInfo 
>GetConstructor(Type[] types);" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Reflection.ConstructorInfo</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="types" Type="System.Type[]" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para>Returns a public instance constructor defined in the type 
>represented by the
>       current instance. The parameters of the constructor match the specified 
>argument
>       types.</para>
>         </summary>
>         <param name="types">
>           <para>An array of <see cref="T:System.Type" /> objects. The elements 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. Specify <see 
>cref="F:System.Type.EmptyTypes" /> to obtain a constructor that takes no 
>parameters.</para>
>         </param>
>         <returns>
>           <para>A <see cref="T:System.Reflection.ConstructorInfo" /> object 
>representing the public instance
>    constructor whose parameters match exactly the types in <paramref name="types" /> 
>, if found;
>    otherwise, <see langword="null" />. If the type represented by the current
>    instance is contained in a loaded assembly, the constructor that matches the
>    specified criteria is not public, and the caller does not have sufficient
>    permissions, returns <see langword="null" />. </para>
>         </returns>
>         <exception cref="T:System.ArgumentNullException">
>           <para>
>             <paramref name="types" /> is <see langword="null" />, or at least one of 
>the elements in <paramref name="types" /> is <see langword="null" />.</para>
>         </exception>
>         <exception cref="T:System.ArgumentException">
>           <para>
>             <paramref name="types" /> has more than one dimension.</para>
>         </exception>
>         <remarks>
>           <para>This version of <see 
>cref="M:System.Type.GetConstructor(System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[])"
> /> is equivalent to <see 
>cref="M:System.Type.GetConstructor(System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[])"
> />(<see cref="F:System.Reflection.BindingFlags.Public" /> | <see 
>cref="F:System.Reflection.BindingFlags.Instance" />, <see langword="null" />,
> <paramref name="types" />, <see langword="null" />).</para>
>           <see langword="" />
>         </remarks>
>         <permission 
>cref="T:System.Security.Permissions.ReflectionPermission">Requires permission to 
>retrieve information on non-public members of types in loaded assemblies. See <see 
>cref="F:System.Security.Permissions.ReflectionPermissionFlag.TypeInformation" 
>/>.</permission>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetConstructors">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig instance 
>class System.Reflection.ConstructorInfo[] GetConstructors()" />
>       <MemberSignature Language="C#" Value="public ConstructorInfo[] 
>GetConstructors();" />
>       <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="T:System.Reflection.ConstructorInfo" /> 
>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="M:System.Type.GetConstructors" /> is 
>equivalent to <see cref="M:System.Type.GetConstructors" />(<see 
>cref="F:System.Reflection.BindingFlags.Public" /> | <see 
>cref="F:System.Reflection.BindingFlags.Instance" />).</para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetMethod">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig instance 
>class System.Reflection.MethodInfo GetMethod(string name, class System.Type[] types, 
>class System.Reflection.ParameterModifier[] modifiers)" />
>       <MemberSignature Language="C#" Value="public MethodInfo GetMethod(string name, 
>Type[] types, ParameterModifier[] modifiers);" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Reflection.MethodInfo</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="name" Type="System.String" />
>         <Parameter Name="types" Type="System.Type[]" />
>         <Parameter Name="modifiers" Type="System.Reflection.ParameterModifier[]" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para>Returns a <see cref="T:System.Reflection.MethodInfo" /> object that 
>reflects the public method that
>    has the specified name and is defined in the type represented by the current
>    instance.</para>
>         </summary>
>         <param name="name">A <see cref="T:System.String" /> containing the name of 
>the public method to be returned.</param>
>         <param name="types">
>           <para>An array of <see cref="T:System.Type" /> objects. The elements 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="modifiers">The only defined value for this parameter is <see 
>langword="null" /> .</param>
>         <returns>
>           <para>A <see cref="T:System.Reflection.MethodInfo" /> object reflecting 
>the public method that is
>    defined in the type represented by the current instance and matches the
>    specified criteria, if found; otherwise, <see langword="null" />.</para>
>         </returns>
>         <exception cref="T:System.Reflection.AmbiguousMatchException">More than one 
>method matching the specified criteria was found.</exception>
>         <exception cref="T:System.ArgumentNullException">
>           <para>
>             <paramref name="name" /> or <paramref name="types" /> is <see 
>langword="null" />.</para>
>           <para>-or-</para>
>           <para>At least one of the elements in <paramref name="types" /> is <see 
>langword="null" />.</para>
>         </exception>
>         <exception cref="T:System.ArgumentException">
>           <para>
>             <paramref name="types" /> has more than one dimension.</para>
>         </exception>
>         <remarks>
>           <para>The default binder does not process
>       <paramref name="modifier" /> . </para>
>           <para>The search for <paramref name="name" /> is case-sensitive.</para>
>           <para>This version of <see 
>cref="M:System.Type.GetMethod(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[])"
> /> is equivalent to <see 
>cref="M:System.Type.GetMethod(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[])"
> /> ( <paramref name="name" />, <see cref="F:System.Reflection.BindingFlags.Public" 
>/> |<see cref="F:System.Reflection.BindingFlags.Static" /> |<see 
>cref="F:System.Reflection.BindingFlags.Instance" /> , <see langword="null" 
>/>,<paramref name=" types" /> , <paramref name="modifiers" />).</para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetMethod">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig instance 
>class System.Reflection.MethodInfo GetMethod(string name, class System.Type[] types)" 
>/>
>       <MemberSignature Language="C#" Value="public MethodInfo GetMethod(string name, 
>Type[] types);" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Reflection.MethodInfo</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="name" Type="System.String" />
>         <Parameter Name="types" Type="System.Type[]" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para>Returns a <see cref="T:System.Reflection.MethodInfo" /> object 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="name">A <see cref="T:System.String" /> containing the name of 
>the public method to be returned.</param>
>         <param name="types">
>           <para>An array of <see cref="T:System.Type" /> objects. The elements 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="T:System.Reflection.MethodInfo" /> object reflecting
>    the public method defined in the type represented by the current instance
>    that matches the specified criteria. If no public method matching the specified 
>criteria
>    is found, returns <see langword="null" /> . </para>
>         </returns>
>         <exception cref="T:System.Reflection.AmbiguousMatchException">More than one 
>method matching the specified criteria was found.</exception>
>         <exception cref="T:System.ArgumentNullException">
>           <para>
>             <paramref name="name" /> or <paramref name="types" /> is <see 
>langword="null" />.</para>
>           <para>-or-</para>
>           <para>At least one of the elements in <paramref name="types" /> is <see 
>langword="null" />.</para>
>         </exception>
>         <exception cref="T:System.ArgumentException">
>           <para>
>             <paramref name="types" /> has more than one dimension.</para>
>         </exception>
>         <remarks>
>           <para>The search for <paramref name="name" /> is case-sensitive.</para>
>           <para>This version of <see 
>cref="M:System.Type.GetMethod(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[])"
> /> is equivalent to <see 
>cref="M:System.Type.GetMethod(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[])"
> />(<paramref name="name" />, <see cref="F:System.Reflection.BindingFlags.Public" /> 
>| <see cref="F:System.Reflection.BindingFlags.Static" /> | <see 
>cref="F:System.Reflection.BindingFlags.Instance" />, <see langword="null" />,
> <paramref name="types" />, <see langword="null" />).</para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetMethod">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig instance 
>class System.Reflection.MethodInfo GetMethod(string name)" />
>       <MemberSignature Language="C#" Value="public MethodInfo GetMethod(string 
>name);" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Reflection.MethodInfo</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="name" Type="System.String" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para>Returns a <see cref="T:System.Reflection.MethodInfo" /> object that 
>reflects the public method that
>    has the specified name and is defined in the type represented by the current
>    instance.</para>
>         </summary>
>         <param name="name">A <see cref="T:System.String" /> containing the name of 
>the public method to be returned.</param>
>         <returns>
>           <para>A <see cref="T:System.Reflection.MethodInfo" /> object reflecting 
>the public method that is
>    defined in the type represented by the current instance and has the specified
>    name, if found; otherwise, <see langword="null" />.</para>
>         </returns>
>         <exception cref="T:System.Reflection.AmbiguousMatchException">More than one 
>method matching the specified criteria was found.</exception>
>         <exception cref="T:System.ArgumentNullException">
>           <paramref name="name" /> is <see langword="null" />. </exception>
>         <remarks>
>           <para>The search for <paramref name="name" /> is case-sensitive.</para>
>           <para>This version of <see 
>cref="M:System.Type.GetMethod(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[])"
> /> is equivalent to <see 
>cref="M:System.Type.GetMethod(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[])"
> />(<paramref name="name" />, <see cref="F:System.Reflection.BindingFlags.Public" /> 
>| <see cref="F:System.Reflection.BindingFlags.Static" /> | <see 
>cref="F:System.Reflection.BindingFlags.Instance" />, <see langword="null" />,
> <see langword="null" />, <see langword="null" />).</para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetMethods">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig instance 
>class System.Reflection.MethodInfo[] GetMethods()" />
>       <MemberSignature Language="C#" Value="public MethodInfo[] GetMethods();" />
>       <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="T:System.Reflection.MethodInfo" /> objects 
>reflecting the public methods defined in the
>    type represented by the current instance under the constraints of
> <paramref name="bindingAttr" />. If no methods matching the constraints are found, 
>returns an 
>    empty array.</para>
>         </returns>
>         <remarks>
>           <para>This version of <see cref="M:System.Type.GetMethods" /> is 
>equivalent to <see cref="M:System.Type.GetMethods" />( <see 
>cref="F:System.Reflection.BindingFlags.Instance" /> | <see 
>cref="F:System.Reflection.BindingFlags.Static" /> | <see 
>cref="F:System.Reflection.BindingFlags.Public" /> ).</para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetField">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig instance 
>class System.Reflection.FieldInfo GetField(string name)" />
>       <MemberSignature Language="C#" Value="public FieldInfo GetField(string name);" 
>/>
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Reflection.FieldInfo</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="name" Type="System.String" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para>Returns a <see cref="T:System.Reflection.FieldInfo" /> object 
>reflecting the field that has the
>    specified name and is defined in the type represented by the current
>    instance.</para>
>         </summary>
>         <param name="name">A <see cref="T:System.String" /> containing the name of 
>the field to be returned.</param>
>         <returns>
>           <para>A <see cref="T:System.Reflection.FieldInfo" /> object reflecting the 
>field that is named
> <paramref name="name" /> and is defined in the type represented by the current 
>instance, if 
>    found; otherwise, <see langword="null" />. If the selected field is non-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 assemblies,
>    returns <see langword="null" />.</para>
>         </returns>
>         <exception cref="T:System.ArgumentNullException">
>           <paramref name="name" /> is <see langword="null" />. </exception>
>         <remarks>
>           <para>The search for <paramref name="name" /> is case-sensitive.</para>
>           <para>This version of <see 
>cref="M:System.Type.GetField(System.String,System.Reflection.BindingFlags)" /> is 
>equivalent to <see 
>cref="M:System.Type.GetField(System.String,System.Reflection.BindingFlags)" />(
> <paramref name="name" />, <see cref="F:System.Reflection.BindingFlags.Public" /> | 
><see cref="F:System.Reflection.BindingFlags.Static" /> | <see 
>cref="F:System.Reflection.BindingFlags.Instance" /> ).</para>
>         </remarks>
>         <permission 
>cref="T:System.Security.Permissions.ReflectionPermission">Requires permission to 
>retrieve information on non-public members of types in loaded assemblies. See <see 
>cref="F:System.Security.Permissions.ReflectionPermissionFlag.TypeInformation" 
>/>.</permission>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetFields">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig instance 
>class System.Reflection.FieldInfo[] GetFields()" />
>       <MemberSignature Language="C#" Value="public FieldInfo[] GetFields();" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Reflection.FieldInfo[]</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para>Returns an array of <see cref="T:System.Reflection.FieldInfo" /> 
>objects that reflect the public fields
>    defined in the type represented by the current instance.</para>
>         </summary>
>         <returns>
>           <para>An array of <see cref="T:System.Reflection.FieldInfo" /> objects 
>that reflect the public fields
>    defined in the type represented by the current instance. If no public fields
>    are defined in the type represented by the current instance, returns an empty
>    array.</para>
>         </returns>
>         <remarks>
>           <para>This version of <see cref="M:System.Type.GetFields" /> is equivalent 
>to <see cref="M:System.Type.GetFields" />( <see 
>cref="F:System.Reflection.BindingFlags.Instance" /> | <see 
>cref="F:System.Reflection.BindingFlags.Static" /> | <see 
>cref="F:System.Reflection.BindingFlags.Public" /> ).</para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetInterface">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig instance 
>class System.Type GetInterface(string name)" />
>       <MemberSignature Language="C#" Value="public Type GetInterface(string name);" 
>/>
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Type</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="name" Type="System.String" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para> Searches for the interface with the specified name.
>       </para>
>         </summary>
>         <param name="name">A <see cref="T:System.String" /> containing the name of 
>the interface to get. </param>
>         <returns>
>           <para> A <see cref="T:System.Type" /> object
>    representing the interface with the specified name, implemented or inherited by
>    the current <see cref="T:System.Type" />, if found; otherwise, <see 
>langword="null" />.
>    </para>
>         </returns>
>         <exception cref="T:System.ArgumentNullException">
>           <paramref name="name" /> is <see langword="null" />. </exception>
>         <remarks>
>           <para> The search for <paramref name="name" /> is case-sensitive.
>    </para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetEvent">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig instance 
>class System.Reflection.EventInfo GetEvent(string name)" />
>       <MemberSignature Language="C#" Value="public EventInfo GetEvent(string name);" 
>/>
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Reflection.EventInfo</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="name" Type="System.String" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para>Returns a <see cref="T:System.Reflection.EventInfo" /> object 
>reflecting the public event that has the
>    specified name and is defined in the type represented by the current
>    instance.</para>
>         </summary>
>         <param name="name">A <see cref="T:System.String" /> containing the name of 
>the public event to be returned.</param>
>         <returns>
>           <para>A <see cref="T:System.Reflection.EventInfo" /> object 
>    reflecting the public event that is named
> <paramref name="name" /> and is defined in the type represented by the current 
>instance, if 
>    found; otherwise, <see langword="null" />.</para>
>         </returns>
>         <exception cref="T:System.ArgumentNullException">
>           <paramref name="name" /> is <see langword="null" />.</exception>
>         <remarks>
>           <para>This version of <see cref="M:System.Type.GetEvent(System.String)" /> 
>is equivalent to <see cref="M:System.Type.GetEvent(System.String)" />( <paramref 
>name="name" />, <see cref="F:System.Reflection.BindingFlags.Static" /> | <see 
>cref="F:System.Reflection.BindingFlags.Instance" /> | <see 
>cref="F:System.Reflection.BindingFlags.Public" /> ).</para>
>           <para>The search for <paramref name="name" /> is case-sensitive.</para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetProperty">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig instance 
>class System.Reflection.PropertyInfo GetProperty(string name, class System.Type 
>returnType, class System.Type[] types)" />
>       <MemberSignature Language="C#" Value="public PropertyInfo GetProperty(string 
>name, Type returnType, Type[] types);" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Reflection.PropertyInfo</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="name" Type="System.String" />
>         <Parameter Name="returnType" Type="System.Type" />
>         <Parameter Name="types" Type="System.Type[]" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para>Returns a <see cref="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="name">A <see cref="T:System.String" /> containing the name of 
>the public property to be returned.</param>
>         <param name=" returnType">A <see cref="T:System.Type" /> object that 
>represents the type of the public property to be returned.</param>
>         <param name="types">
>           <para>An array of <see cref="T:System.Type" /> objects. The elements 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="F:System.Type.EmptyTypes" /> for a property that is not indexed.</para>
>         </param>
>         <returns>
>           <para>A <see cref="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="null" /> . </para>
>         </returns>
>         <exception cref="T:System.Reflection.AmbiguousMatchException">More than one 
>property matching the specified criteria was found.</exception>
>         <exception cref="T:System.ArgumentNullException">
>           <para>
>             <paramref name="name" /> or <paramref name="types" /> is <see 
>langword="null" />, or at least one of the elements in <paramref name="types" /> is 
><see langword="null" />.</para>
>         </exception>
>         <exception cref="T:System.ArgumentException">
>           <paramref name="types" /> has more than one dimension.</exception>
>         <remarks>
>           <para>This version of <see 
>cref="M:System.Type.GetProperty(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[])"
> /> is equivalent to <see 
>cref="M:System.Type.GetPropertyImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[])"
> />(<paramref name="name" />, <see cref="F:System.Reflection.BindingFlags.Static" /> 
>| <see cref="F:System.Reflection.BindingFlags.Instance" /> | <see 
>cref="F:System.Reflection.BindingFlags.Public" />,
> <see langword="null" />, <paramref name="returnTypes" />, <paramref name="types" />, 
> <see langword="null" />).</para>
>           <para>The search for <paramref name="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
>    property using reflection is required to
>    specify this internal name in order for the <see langword="PropertyInfo" /> to be 
>returned correctly.</para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetProperty">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig instance 
>class System.Reflection.PropertyInfo GetProperty(string name, class System.Type[] 
>types)" />
>       <MemberSignature Language="C#" Value="public PropertyInfo GetProperty(string 
>name, Type[] types);" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Reflection.PropertyInfo</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="name" Type="System.String" />
>         <Parameter Name="types" Type="System.Type[]" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para>Returns a <see cref="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="name">A <see cref="T:System.String" /> containing the name of 
>the public property to be returned.</param>
>         <param name="types">
>           <para>An array of <see cref="T:System.Type" /> objects. The elements 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="F:System.Type.EmptyTypes" /> to obtain a property that is not indexed.</para>
>         </param>
>         <returns>
>           <para>A <see cref="T:System.Reflection.PropertyInfo" /> object reflecting 
>the public property defined
>    on the type represented by the current instance that matches the specified
>    criteria. If no matching property is found, returns <see langword="null" /> 
>.</para>
>         </returns>
>         <exception cref="T:System.Reflection.AmbiguousMatchException">More than one 
>property matching the specified criteria was found.</exception>
>         <exception cref="T:System.ArgumentNullException">
>           <para>
>             <paramref name="name" /> or <paramref name="types" /> is <see 
>langword="null" />, or at least one of the elements in <paramref name="types" /> is 
><see langword="null" />.</para>
>         </exception>
>         <exception cref="T:System.ArgumentException">
>           <para>
>             <paramref name="types" /> has more than one dimension.</para>
>         </exception>
>         <remarks>
>           <para>This version of <see 
>cref="M:System.Type.GetProperty(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[])"
> /> is equivalent to <see 
>cref="M:System.Type.GetPropertyImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[])"
> />(<paramref name="name" />, <see cref="F:System.Reflection.BindingFlags.Static" /> 
>| <see cref="F:System.Reflection.BindingFlags.Instance" /> | <see 
>cref="F:System.Reflection.BindingFlags.Public" />,
> <see langword="null" />, <see langword="null" />, <paramref name="types" />, 
> <see langword="null" />).</para>
>           <para>The search for <paramref name="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 property
>    using reflection is required to
>    specify this internal name in order for the <see langword="PropertyInfo" /> to be 
>returned correctly.</para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetProperty">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig instance 
>class System.Reflection.PropertyInfo GetProperty(string name, class System.Type 
>returnType)" />
>       <MemberSignature Language="C#" Value="public PropertyInfo GetProperty(string 
>name, Type returnType);" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Reflection.PropertyInfo</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="name" Type="System.String" />
>         <Parameter Name="returnType" Type="System.Type" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para>Returns a <see cref="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="name">A <see cref="T:System.String" /> containing the name of 
>the property to be returned.</param>
>         <param name=" returnType">A <see cref="T:System.Type" /> object that 
>represents the type of the property to be returned.</param>
>         <returns>
>           <para>A <see cref="T:System.Reflection.PropertyInfo" /> object reflecting 
>the public property defined 
>    on the type represented by the current instance that matches the specified
>    criteria. If no matching property is found, returns <see langword="null" /> 
>.</para>
>         </returns>
>         <exception cref="T:System.Reflection.AmbiguousMatchException">More than one 
>property matching the specified criteria was found.</exception>
>         <exception cref="T:System.ArgumentNullException">
>           <para>
>             <paramref name="name" /> is <see langword="null" />.</para>
>         </exception>
>         <remarks>
>           <para>This version of <see 
>cref="M:System.Type.GetProperty(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[])"
> /> is equivalent to <see 
>cref="M:System.Type.GetPropertyImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[])"
> />(<paramref name="name" />, <see cref="F:System.Reflection.BindingFlags.Static" /> 
>| <see cref="F:System.Reflection.BindingFlags.Instance" /> | <see 
>cref="F:System.Reflection.BindingFlags.Public" />,
> <see langword="null" />, <paramref name="returnType" />, <see langword="null" />, 
> <see langword="null" />).</para>
>           <para>The search for <paramref name="name" /> is case-sensitive.</para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetProperty">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig instance 
>class System.Reflection.PropertyInfo GetProperty(string name)" />
>       <MemberSignature Language="C#" Value="public PropertyInfo GetProperty(string 
>name);" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Reflection.PropertyInfo</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="name" Type="System.String" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para>Returns a <see cref="T:System.Reflection.PropertyInfo" /> object 
>that reflects the public
>    property defined in the type represented by the current instance that has the 
>specified
>    name.</para>
>         </summary>
>         <param name="name">A <see cref="T:System.String" /> containing the name of 
>the property to be returned.</param>
>         <returns>
>           <para>A <see cref="T:System.Reflection.PropertyInfo" /> object reflecting 
>the public property defined 
>    on the type represented by the current instance that has the specified name. If
>    no matching property is found, returns <see langword="null" /> . </para>
>         </returns>
>         <exception cref="T:System.Reflection.AmbiguousMatchException">More than one 
>property matching the specified criteria was found.</exception>
>         <exception cref="T:System.ArgumentNullException">
>           <para>
>             <paramref name="name" /> is <see langword="null" />.</para>
>         </exception>
>         <remarks>
>           <para>This version of <see 
>cref="M:System.Type.GetProperty(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[])"
> /> is equivalent to <see 
>cref="M:System.Type.GetPropertyImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[])"
> />(<paramref name="name" />, <see cref="F:System.Reflection.BindingFlags.Static" /> 
>| <see cref="F:System.Reflection.BindingFlags.Instance" /> | <see 
>cref="F:System.Reflection.BindingFlags.Public" />,
> <see langword="null" />, <see langword="null" />, <see langword="null" />, 
> <see langword="null" />).</para>
>           <para>The search for <paramref name="name" /> is case-sensitive.</para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetProperties">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig instance 
>class System.Reflection.PropertyInfo[] GetProperties()" />
>       <MemberSignature Language="C#" Value="public PropertyInfo[] GetProperties();" 
>/>
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Reflection.PropertyInfo[]</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para>Returns an array of <see cref="T:System.Reflection.PropertyInfo" /> 
>objects that reflect the public properties
>    defined in the type represented by the current instance.</para>
>         </summary>
>         <returns>
>           <para>An array of <see cref="T:System.Reflection.PropertyInfo" /> 
> objects that reflect the public properties defined in the type
> represented by the current instance. If no public properties are found, returns
> an empty array.</para>
>         </returns>
>         <remarks>
>           <para>This version of <see 
>cref="M:System.Type.GetProperties(System.Reflection.BindingFlags)" /> is equivalent 
>to <see cref="M:System.Type.GetProperties(System.Reflection.BindingFlags)" />(
> <see cref="F:System.Reflection.BindingFlags.Instance" /> | <see 
>cref="F:System.Reflection.BindingFlags.Static" /> | <see 
>cref="F:System.Reflection.BindingFlags.Public" /> ).</para>
>           <para>A property is considered by reflection
>    to be <see langword="public" /> if it has at least one accessor that is
> <see langword="public" />. Otherwise, the property is considered to be not 
> <see langword="public" />.</para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetNestedTypes">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig instance 
>class System.Type[] GetNestedTypes()" />
>       <MemberSignature Language="C#" Value="public Type[] GetNestedTypes();" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Type[]</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para>Returns all the public types nested within the current <see 
>cref="T:System.Type" />.</para>
>         </summary>
>         <returns>
>           <para>An array of <see cref="T:System.Type" /> objects representing all 
>public types nested within the type
>    represented by the current instance, if any. Otherwise, returns an empty <see 
>cref="T:System.Type" /> array.</para>
>         </returns>
>         <remarks>
>           <para>This version of <see cref="M:System.Type.GetNestedTypes" /> is 
>equivalent to <see cref="M:System.Type.GetNestedTypes" />(<see 
>cref="F:System.Reflection.BindingFlags.Public" />).</para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetNestedType">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig instance 
>class System.Type GetNestedType(string name)" />
>       <MemberSignature Language="C#" Value="public Type GetNestedType(string name);" 
>/>
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Type</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="name" Type="System.String" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para>Returns the public nested type defined in the type represented by 
>the current instance</para>
>         </summary>
>         <param name="name">A <see cref="T:System.String" /> containing the name of 
>the public nested type to return. Specify the unqualified name of the nested type. 
><block subset="none" type="note">For example, for a type B nested within A, if typeA 
>represents the type object for A, the correct invocation is typeA.GetNestedType("B"). 
></block></param>
>         <returns>
>           <para>A <see cref="T:System.Type" /> object
>    representing the public nested type with the specified
>    name, if found; otherwise, <see langword="null" />.</para>
>         </returns>
>         <exception cref="T:System.ArgumentNullException">
>           <paramref name="name" /> is <see langword="null" />. </exception>
>         <remarks>
>           <para>The search for <paramref name="name" /> is case-sensitive.</para>
>           <para>This version of <see cref="M:System.Type.GetNestedTypes" /> is 
>equivalent to <see cref="M:System.Type.GetNestedTypes" />(<paramref name="name" />, 
><see cref="F:System.Reflection.BindingFlags.Public" />).</para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetMember">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig instance 
>class System.Reflection.MemberInfo[] GetMember(string name)" />
>       <MemberSignature Language="C#" Value="public MemberInfo[] GetMember(string 
>name);" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Reflection.MemberInfo[]</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="name" Type="System.String" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para>Returns an array of <see cref="T:System.Reflection.MemberInfo" /> 
>objects that reflect the public members that
>    have the specified name and are defined in the type represented by the current
>    instance.</para>
>         </summary>
>         <param name="name">A <see cref="T:System.String" /> containing the name of 
>the members to be returned.</param>
>         <returns>
>           <para>An array of <see cref="T:System.Reflection.MemberInfo" /> objects 
>that reflect the public members that
>    are named <paramref name="name" /> and are defined in the type represented by the 
>current instance. If no public
>    members with the specified name are defined in the type represented by the
>    current instance, returns an empty array.</para>
>         </returns>
>         <exception cref="T:System.ArgumentNullException">
>           <paramref name="name" /> is <see langword="null" />. </exception>
>         <remarks>
>           <para>This version of <see cref="M:System.Type.GetMember(System.String)" 
>/> is equivalent to <see cref="M:System.Type.GetMember(System.String)" />( <paramref 
>name="name" />, <see cref="F:System.Reflection.BindingFlags.Static" /> | <see 
>cref="F:System.Reflection.BindingFlags.Instance" /> | <see 
>cref="F:System.Reflection.BindingFlags.Public" /> ).</para>
>           <para>The search for <paramref name="name" /> is case-sensitive.</para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetMembers">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig instance 
>class System.Reflection.MemberInfo[] GetMembers()" />
>       <MemberSignature Language="C#" Value="public MemberInfo[] GetMembers();" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Reflection.MemberInfo[]</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para>Returns an array of <see cref="T:System.Reflection.MemberInfo" /> 
>objects that reflect the public members
>    defined in the type represented by the current instance.</para>
>         </summary>
>         <returns>
>           <para>An array of <see cref="T:System.Reflection.MemberInfo" /> objects 
>that reflect the public members
>    defined in the type represented by the current instance. If no public members
>    are defined in the type represented by the current instance, returns an empty
>    array.</para>
>         </returns>
>         <remarks>
>           <para>This version of <see cref="M:System.Type.GetMembers" /> is 
>equivalent to <see cref="M:System.Type.GetMembers" />(<see 
>cref="F:System.Reflection.BindingFlags.Public" /> | <see 
>cref="F:System.Reflection.BindingFlags.Static" /> | <see 
>cref="F:System.Reflection.BindingFlags.Instance" />).</para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="GetTypeArray">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig static class 
>System.Type[] GetTypeArray(class System.Object[] args)" />
>       <MemberSignature Language="C#" Value="public static Type[] 
>GetTypeArray(object[] args);" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Type[]</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="args" Type="System.Object[]" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para> Returns the types of the objects in the specified array.
>       </para>
>         </summary>
>         <param name="args">An array of objects whose types are to be returned. 
></param>
>         <returns>
>           <para> An array of <see cref="T:System.Type" /> objects representing the 
>types of the corresponding
>    elements in <paramref name="args" />. If a requested type is not public
>    and the caller does not have permission to
>    reflect non-public objects outside the current assembly, the corresponding 
>element in the
>    array returned by this method will be <see langword="null" />.
>    </para>
>         </returns>
>         <exception cref="T:System.ArgumentNullException">
>           <paramref name="args" /> is <see langword="null" />. </exception>
>         <exception cref="T:System.Reflection.TargetInvocationException">The type 
>initializers were invoked and at least one threw an exception. </exception>
>         <permission 
>cref="T:System.Security.Permissions.ReflectionPermission">Requires permission to 
>retrieve information on non-public members of types in loaded assemblies. See <see 
>cref="F:System.Security.Permissions.ReflectionPermissionFlag.TypeInformation" 
>/>.</permission>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="Equals">
>       <MemberSignature Language="ILASM" Value=".method public hidebysig instance 
>bool Equals(class System.Type o)" />
>       <MemberSignature Language="C#" Value="public bool Equals(Type o);" />
>       <MemberType>Method</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Boolean</ReturnType>
>       </ReturnValue>
>       <Parameters>
>         <Parameter Name="o" Type="System.Type" />
>       </Parameters>
>       <Docs>
>         <summary>
>           <para>Determines if the underlying system type of the current <see 
>cref="T:System.Type" /> is the same as the
>    underlying system type of the specified <see cref="T:System.Type" />.</para>
>         </summary>
>         <param name="o">The <see cref="T:System.Type" /> whose underlying system 
>type is to be compared with the underlying system type of the current <see 
>cref="T:System.Type" />.</param>
>         <returns>
>           <para>
>             <see langword="true" /> if the underlying system type of <paramref 
>name="o" /> is the same
>    as the underlying system type of the current <see cref="T:System.Type" />; 
>otherwise, <see langword="false" />.</para>
>         </returns>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName=".ctor">
>       <MemberSignature Language="ILASM" Value="family rtspecialname specialname 
>instance void .ctor()" />
>       <MemberSignature Language="C#" Value="protected Type();" />
>       <MemberType>Constructor</MemberType>
>       <ReturnValue />
>       <Parameters />
>       <Docs>
>         <summary>
>           <para> Constructs a new instance of the <see cref="T:System.Type" /> class.
>    </para>
>         </summary>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="DeclaringType">
>       <MemberSignature Language="ILASM" Value=".property class System.Type 
>DeclaringType { public hidebysig virtual specialname class System.Type 
>get_DeclaringType() }" />
>       <MemberSignature Language="C#" Value="public override Type DeclaringType { 
>get; }" />
>       <MemberType>Property</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Type</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para>Gets the type that declares the type represented by the current 
>instance.</para>
>         </summary>
>         <value>
>           <para>The <see cref="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 enclosing type; 
>otherwise, returns
>    the current instance.</para>
>         </value>
>         <remarks>
>           <para>
>             <block subset="none" type="note">This property overrides <see 
>cref="P:System.Reflection.MemberInfo.DeclaringType" />.</block>
>           </para>
>         </remarks>
>         <example>
>           <para>The following example demonstrates the
>    <see cref="P:System.Type.DeclaringType" /> property. </para>
>           <code lang="C#">using System;
> using System.Reflection;
> 
> public abstract class DeclaringTypeTest{
>    public abstract class MyClassA {
>       public abstract int m(); 
>    }
>    public abstract class MyClassB : MyClassA {
>    }
>    public static void Main() { 
>       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="ReflectedType">
>       <MemberSignature Language="ILASM" Value=".property class System.Type 
>ReflectedType { public hidebysig virtual specialname class System.Type 
>get_ReflectedType() }" />
>       <MemberSignature Language="C#" Value="public override Type ReflectedType { 
>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="Type" /> object
>    through which the current instance was obtained.</para>
>         </value>
>         <remarks>
>           <para>This property is read-only.</para>
>           <para>
>             <block subset="none" type="note">This property
>       overrides <see cref="P:System.Reflection.MemberInfo.ReflectedType" />.</block>
>           </para>
>         </remarks>
>         <example>
>           <para>The following example demonstrates the <see 
>cref="P:System.Type.ReflectedType" /> property. Although the method <paramref 
>name="m" /> is
>    declared in <see langword="MyClassA" />, its reflected type is obtained from
> <see langword="MyClassB" /> .</para>
>           <code lang="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="DefaultBinder">
>       <MemberSignature Language="ILASM" Value=".property class 
>System.Reflection.Binder DefaultBinder { public hidebysig static specialname class 
>System.Reflection.Binder get_DefaultBinder() }" />
>       <MemberSignature Language="C#" Value="public static Binder DefaultBinder { 
>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="T:System.Reflection.Binder" /> used 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 caller needs
>    <see cref="T:System.Security.Permissions.ReflectionPermission" />
>    . This is consistent with lookup of members that
>    are protected, private, and so on. </para>
>           <para>
>             <block subset="none" type="note">The general principle is that <see 
>cref="M:System.Reflection.Binder.ChangeType(System.Object,System.Type,System.Globalization.CultureInfo)"
> /> 
> 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 integer.
> 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 default 
>binder's implementation of
> <see langword="ChangeType" />.</para>
>           <list type="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, 
>Double</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</description>
>             </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="Module">
>       <MemberSignature Language="ILASM" Value=".property class 
>System.Reflection.Module Module { public hidebysig virtual abstract specialname class 
>System.Reflection.Module get_Module() }" />
>       <MemberSignature Language="C#" Value="public abstract Module Module { get; }" 
>/>
>       <MemberType>Property</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Reflection.Module</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para> Gets the module in which the current <see cref="T:System.Type" /> 
>is defined.</para>
>         </summary>
>         <value>
>           <para>A <see cref="T:System.Reflection.Module" /> that reflects the module 
>in which the current <see cref="T:System.Type" /> is defined.</para>
>         </value>
>         <remarks>
>           <para>
>             <block subset="none" type="behaviors">This property is
>       read-only.</block>
>           </para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="Assembly">
>       <MemberSignature Language="ILASM" Value=".property class 
>System.Reflection.Assembly Assembly { public hidebysig virtual abstract specialname 
>class System.Reflection.Assembly get_Assembly() }" />
>       <MemberSignature Language="C#" Value="public abstract Assembly Assembly { get; 
>}" />
>       <MemberType>Property</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Reflection.Assembly</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para>Gets the <see cref="T:System.Reflection.Assembly" /> that the type 
>is declared in. </para>
>         </summary>
>         <value>
>           <para>A <see cref="T:System.Reflection.Assembly" /> instance that 
>describes assembly containing the current type.</para>
>         </value>
>         <remarks>
>           <para>
>             <block subset="none" type="behaviors">This property is read-only.</block>
>           </para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>RuntimeInfrastructure</ExcludedLibrary>
>     </Member>
>     <Member MemberName="TypeHandle">
>       <MemberSignature Language="ILASM" Value=".property valuetype 
>System.RuntimeTypeHandle TypeHandle { public hidebysig virtual abstract specialname 
>valuetype System.RuntimeTypeHandle get_TypeHandle() }" />
>       <MemberSignature Language="C#" Value="public abstract RuntimeTypeHandle 
>TypeHandle { get; }" />
>       <MemberType>Property</MemberType>
>       <ReturnValue>
>         <ReturnType>System.RuntimeTypeHandle</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para>Gets the handle for the current <see cref="T:System.Type" />.</para>
>         </summary>
>         <value>
>           <para>The <see cref="T:System.RuntimeTypeHandle" /> for the current <see 
>cref="T:System.Type" />.</para>
>         </value>
>         <remarks>
>           <para>This property is read-only.</para>
>           <para>The <see cref="T:System.RuntimeTypeHandle" /> encapsulates a pointer 
>to an internal data structure that represents the type. This
>    handle is unique during the process lifetime. 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="FullName">
>       <MemberSignature Language="ILASM" Value=".property string FullName { public 
>hidebysig virtual abstract specialname string get_FullName() }" />
>       <MemberSignature Language="C#" Value="public abstract string FullName { get; 
>}" />
>       <MemberType>Property</MemberType>
>       <ReturnValue>
>         <ReturnType>System.String</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para>Gets the fully qualified name of the type represented by 
>       the current instance.</para>
>         </summary>
>         <value>
>           <para>A <see cref="T:System.String" /> containing the fully qualified name 
>of the <see cref="T:System.Type" />.</para>
>         </value>
>         <remarks>
>           <para>
>             <block subset="none" type="note">For example, the
>       fully qualified name of the C# string type is "System.String".</block>
>           </para>
>           <para>
>             <block subset="none" type="behaviors">This property is
>       read-only.</block>
>           </para>
>         </remarks>
>         <example>
>           <para>The following example demonstrates using the <see 
>cref="P:System.Type.FullName" />
> property.</para>
>           <code lang="C#">using System;
> class TestType {
>  public static void Main() {
>  Type t = 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="Namespace">
>       <MemberSignature Language="ILASM" Value=".property string Namespace { public 
>hidebysig virtual abstract specialname string get_Namespace() }" />
>       <MemberSignature Language="C#" Value="public abstract string Namespace { get; 
>}" />
>       <MemberType>Property</MemberType>
>       <ReturnValue>
>         <ReturnType>System.String</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para>Gets the namespace of the <see cref="T:System.Type" />.</para>
>         </summary>
>         <value>
>           <para>A <see cref="T:System.String" /> containing the namespace of the 
>current <see cref="T:System.Type" />.</para>
>         </value>
>         <remarks>
>           <para>
>             <block subset="none" type="note">A namespace is a 
>       logical design-time naming convenience, used mainly to define scope in an
>       application and organize classes and other types in a hierarchical structure.
>       From the viewpoint of the system, there are no namespaces.</block>
>           </para>
>           <para>
>             <block subset="none" type="behaviors">This property is 
>       read-only.</block>
>           </para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="AssemblyQualifiedName">
>       <MemberSignature Language="ILASM" Value=".property string 
>AssemblyQualifiedName { public hidebysig virtual abstract specialname string 
>get_AssemblyQualifiedName() }" />
>       <MemberSignature Language="C#" Value="public abstract string 
>AssemblyQualifiedName { get; }" />
>       <MemberType>Property</MemberType>
>       <ReturnValue>
>         <ReturnType>System.String</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para>Gets the fully qualified name of the type represented by 
>       the current instance
>       including the name of the assembly from which the <see cref="T:System.Type" /> 
>was loaded.</para>
>         </summary>
>         <value>
>           <para>A <see cref="T:System.String" /> containing the 
>    fully qualified name of the type represented by the current instance,
>    including the name of the assembly from which the <see cref="T:System.Type" /> 
>was loaded.</para>
>         </value>
>         <remarks>
>           <block subset="none" type="behaviors">
>             <para> 
>          This property is read-only.</para>
>             <para>Compilers emit the simple name of a nested class, and reflection 
>constructs a 
>          mangled name when queried, in accordance with the following 
>conventions.</para>
>             <list type="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="none" type="note">
>               <para>For example, the fully qualified name for a class might look 
>like this: </para>
>               <para>TopNamespace.SubNameSpace.ContainingClass+NestedClass,MyAssembly 
></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 that 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 without 
>these
>          trailing characters, use <c>t.GetElementType().ToString()</c>, where 
><paramref name="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 significant, 
>but
>       spaces after the ',' separator are ignored.</para>
>           </block>
>           <block subset="none" type="usage">
>             <para>The name returned by this method can be persisted and later used 
>to load the <see cref="T:System.Type" />.
>    To search for and load a <see cref="T:System.Type" />, use <see 
>cref="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="M:System.Type.GetType(System.String,System.Boolean,System.Boolean)" /> with the 
>type name only will look for
>    the <see cref="T:System.Type" />
>    in the caller's assembly and then in the System assembly. <see 
>cref="M:System.Type.GetType(System.String,System.Boolean,System.Boolean)" /> with the
>    assembly qualified type name will look for the <see cref="T:System.Type" /> in 
>any assembly.</para>
>           </block>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="BaseType">
>       <MemberSignature Language="ILASM" Value=".property class System.Type BaseType 
>{ public hidebysig virtual abstract specialname class System.Type get_BaseType() }" />
>       <MemberSignature Language="C#" Value="public abstract Type BaseType { get; }" 
>/>
>       <MemberType>Property</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Type</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para>Gets the base <see cref="T:System.Type" /> of the current <see 
>cref="T:System.Type" /> .</para>
>         </summary>
>         <value>
>           <para>A <see cref="T:System.Type" /> object 
>    representing the type from which the current <see cref="T:System.Type" /> 
>directly inherits, or
> <see langword="null" /> 
> if the current <see cref="T:System.Type" /> represents the <see 
>cref="T:System.Object" /> class.</para>
>         </value>
>         <remarks>
>           <para>
>             <block subset="none" type="behaviors"> This property is 
>read-only.</block>
>           </para>
>         </remarks>
>         <example>
>           <para>The following example demonstrates using the <see 
>cref="P:System.Type.BaseType" />
> property.</para>
>           <code lang="C#">using System;
> class TestType {
>  public static void Main() {
>  Type t = 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="TypeInitializer">
>       <MemberSignature Language="ILASM" Value=".property class 
>System.Reflection.ConstructorInfo TypeInitializer { public hidebysig specialname 
>instance class System.Reflection.ConstructorInfo get_TypeInitializer() }" />
>       <MemberSignature Language="C#" Value="public ConstructorInfo TypeInitializer { 
>get; }" />
>       <MemberType>Property</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Reflection.ConstructorInfo</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para> Gets the initializer for the<see langword=" " />type
>    represented by the current instance.</para>
>         </summary>
>         <value>
>           <para>A <see cref="T:System.Reflection.ConstructorInfo" /> containing 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="none" type="note">Type initializers are available through 
><see cref="M:System.Type.GetMember(System.String)" />,
> <see cref="M:System.Type.GetMembers" />, <see 
>cref="M:System.Type.FindMembers(System.Reflection.MemberTypes,System.Reflection.BindingFlags,System.Reflection.MemberFilter,System.Object)"
> />, and <see cref="M:System.Type.GetConstructors" />.</block>
>           </para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="Attributes">
>       <MemberSignature Language="ILASM" Value=".property valuetype 
>System.Reflection.TypeAttributes Attributes { public hidebysig specialname instance 
>valuetype System.Reflection.TypeAttributes get_Attributes() }" />
>       <MemberSignature Language="C#" Value="public TypeAttributes Attributes { get; 
>}" />
>       <MemberType>Property</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Reflection.TypeAttributes</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para> Gets the attributes associated with the type represented 
>       by the current instance.</para>
>         </summary>
>         <value>
>           <para>A <see cref="T:System.Reflection.TypeAttributes" /> object 
>representing the attribute set of the <see cref="T:System.Type" />.</para>
>         </value>
>         <remarks>
>           <para>This property is read-only.</para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="IsNotPublic">
>       <MemberSignature Language="ILASM" Value=".property bool IsNotPublic { public 
>hidebysig specialname instance bool get_IsNotPublic() }" />
>       <MemberSignature Language="C#" Value="public bool IsNotPublic { get; }" />
>       <MemberType>Property</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Boolean</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para> Gets a <see cref="T:System.Boolean" /> value indicating whether the 
>top-level <see cref="T:System.Type" /> is not declared public.</para>
>         </summary>
>         <value>
>           <para>
>             <see langword="true" /> if the
>    top-level <see cref="T:System.Type" /> is not declared public; otherwise, <see 
>langword="false" />. </para>
>         </value>
>         <remarks>
>           <para>This property is read-only.</para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="IsPublic">
>       <MemberSignature Language="ILASM" Value=".property bool IsPublic { public 
>hidebysig specialname instance bool get_IsPublic() }" />
>       <MemberSignature Language="C#" Value="public bool IsPublic { get; }" />
>       <MemberType>Property</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Boolean</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para> Gets a <see cref="T:System.Boolean" /> value indicating whether the 
>top-level <see cref="T:System.Type" /> is declared public.</para>
>         </summary>
>         <value>
>           <para>
>             <see langword="true" /> if the top-level <see cref="T:System.Type" /> is 
>declared public; otherwise, <see langword="false" />.</para>
>         </value>
>         <remarks>
>           <para>This property is read-only.</para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="IsNestedPublic">
>       <MemberSignature Language="ILASM" Value=".property bool IsNestedPublic { 
>public hidebysig specialname instance bool get_IsNestedPublic() }" />
>       <MemberSignature Language="C#" Value="public bool IsNestedPublic { get; }" />
>       <MemberType>Property</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Boolean</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para> Gets a <see cref="T:System.Boolean" /> value indicating 
>    whether the current <see cref="T:System.Type" /> is a public nested class.</para>
>         </summary>
>         <value>
>           <para>
>             <see langword="true" /> if
>    the class is nested and declared public; otherwise, <see langword="false" 
>/>.</para>
>         </value>
>         <remarks>
>           <para>This property is read-only.</para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="IsNestedPrivate">
>       <MemberSignature Language="ILASM" Value=".property bool IsNestedPrivate { 
>public hidebysig specialname instance bool get_IsNestedPrivate() }" />
>       <MemberSignature Language="C#" Value="public bool IsNestedPrivate { get; }" />
>       <MemberType>Property</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Boolean</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para> Gets a <see cref="T:System.Boolean" /> value indicating whether the 
>current <see cref="T:System.Type" /> is nested and declared private.</para>
>         </summary>
>         <value>
>           <para>
>             <see langword="true" /> if the <see cref="T:System.Type" /> is nested 
>and declared private; otherwise, <see langword="false" />.</para>
>         </value>
>         <remarks>
>           <para>This property is read-only.</para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="IsNestedFamily">
>       <MemberSignature Language="ILASM" Value=".property bool IsNestedFamily { 
>public hidebysig specialname instance bool get_IsNestedFamily() }" />
>       <MemberSignature Language="C#" Value="public bool IsNestedFamily { get; }" />
>       <MemberType>Property</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Boolean</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para> Gets a <see cref="T:System.Boolean" /> value indicating whether the 
>current <see cref="T:System.Type" /> is nested and visible only within its
>    own family.</para>
>         </summary>
>         <value>
>           <para>
>             <see langword="true" /> if the <see cref="T:System.Type" /> is nested
>    and visible only within its own family; otherwise, <see langword="false" 
>/>.</para>
>         </value>
>         <remarks>
>           <para> This property is read-only.</para>
>           <para>A <see cref="T:System.Type" /> object's family is defined as all 
>objects of the exact
>    same <see cref="T:System.Type" /> and of its subclasses.</para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="IsNestedAssembly">
>       <MemberSignature Language="ILASM" Value=".property bool IsNestedAssembly { 
>public hidebysig specialname instance bool get_IsNestedAssembly() }" />
>       <MemberSignature Language="C#" Value="public bool IsNestedAssembly { get; }" />
>       <MemberType>Property</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Boolean</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para>Gets a <see cref="T:System.Boolean" /> value indicating whether the 
>current <see cref="T:System.Type" /> is nested and visible only within its own 
>assembly.</para>
>         </summary>
>         <value>
>           <para>
>             <see langword="true" /> if the <see cref="T:System.Type" /> is nested 
>and visible only within its own assembly; otherwise, <see langword="false" />.</para>
>         </value>
>         <remarks>
>           <para> This property is read-only.</para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="IsNestedFamANDAssem">
>       <MemberSignature Language="ILASM" Value=".property bool IsNestedFamANDAssem { 
>public hidebysig specialname instance bool get_IsNestedFamANDAssem() }" />
>       <MemberSignature Language="C#" Value="public bool IsNestedFamANDAssem { get; 
>}" />
>       <MemberType>Property</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Boolean</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para> Gets a <see cref="T:System.Boolean" /> value indicating whether the 
>current <see cref="T:System.Type" /> is nested and visible only to classes that 
>belong to both its own family and
>    its own assembly.</para>
>         </summary>
>         <value>
>           <para>
>             <see langword="true" /> if the <see cref="T:System.Type" /> is nested
>    and visible only to classes that belong to both its own family and its own 
>assembly; otherwise, <see langword="false" />.</para>
>         </value>
>         <remarks>
>           <para> This property is read-only.</para>
>           <para>A <see cref="T:System.Type" /> object's family is defined as all 
>objects of the exact
>    same <see cref="T:System.Type" /> and of its subclasses.</para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="IsNestedFamORAssem">
>       <MemberSignature Language="ILASM" Value=".property bool IsNestedFamORAssem { 
>public hidebysig specialname instance bool get_IsNestedFamORAssem() }" />
>       <MemberSignature Language="C#" Value="public bool IsNestedFamORAssem { get; }" 
>/>
>       <MemberType>Property</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Boolean</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para> Gets a <see cref="T:System.Boolean" /> value indicating whether the 
>current <see cref="T:System.Type" /> is nested and visible only to classes that 
>belong to either its
>    own family or to its own assembly.</para>
>         </summary>
>         <value>
>           <para>
>             <see langword="true" /> if the <see cref="T:System.Type" /> is nested
>    and visible only to classes that belong to its own family or to its own assembly; 
>otherwise, <see langword="false" />.</para>
>         </value>
>         <remarks>
>           <para> This property is read-only.</para>
>           <para>A <see cref="T:System.Type" /> object's family is defined as all 
>objects of the exact
>    same <see cref="T:System.Type" /> and of its subclasses.</para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="IsAutoLayout">
>       <MemberSignature Language="ILASM" Value=".property bool IsAutoLayout { public 
>hidebysig specialname instance bool get_IsAutoLayout() }" />
>       <MemberSignature Language="C#" Value="public bool IsAutoLayout { get; }" />
>       <MemberType>Property</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Boolean</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para> Gets a <see cref="T:System.Boolean" /> value indicating
>    whether the type layout attribute <see 
>cref="F:System.Reflection.TypeAttributes.AutoLayout" /> is specified for the <see 
>cref="T:System.Type" />.</para>
>         </summary>
>         <value>
>           <para>
>             <see langword="true" /> if the type
>    layout attribute <see cref="F:System.Reflection.TypeAttributes.AutoLayout" /> is 
>specified for the current <see cref="T:System.Type" />; otherwise, <see 
>langword="false" />.</para>
>         </value>
>         <remarks>
>           <para>This property is read-only.</para>
>           <block subset="none" type="note">
>             <para>The <see cref="F:System.Reflection.TypeAttributes.AutoLayout" /> 
>attribute specifies that the system
>       selects the layout the objects of the type. Types marked with this attribute 
>indicate that the
>       system will choose the appropriate way to lay out the type; any layout 
>information
>       that may have been specified is ignored. </para>
>           </block>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="IsLayoutSequential">
>       <MemberSignature Language="ILASM" Value=".property bool IsLayoutSequential { 
>public hidebysig specialname instance bool get_IsLayoutSequential() }" />
>       <MemberSignature Language="C#" Value="public bool IsLayoutSequential { get; }" 
>/>
>       <MemberType>Property</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Boolean</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para> Gets a <see cref="T:System.Boolean" /> value indicating
>    whether the type layout attribute <see 
>cref="F:System.Reflection.TypeAttributes.SequentialLayout" /> is specified for the 
><see cref="T:System.Type" />.</para>
>         </summary>
>         <value>
>           <para>
>             <see langword="true" /> if the type layout attribute
> <see cref="F:System.Reflection.TypeAttributes.SequentialLayout" /> is specified for 
>the current 
> <see cref="T:System.Type" />; otherwise, 
> <see langword="false" />.</para>
>         </value>
>         <remarks>
>           <para>This property is read-only.</para>
>           <block subset="none" type="note">
>             <para> The <see 
>cref="F:System.Reflection.TypeAttributes.SequentialLayout" /> attribute is used
>       to indicate that
>       the system is to preserve field order as emitted, but otherwise the specific 
>offsets are calculated based on the type
>       of the field; these may be shifted by explicit offset, padding, or alignment 
>information.</para>
>           </block>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="IsExplicitLayout">
>       <MemberSignature Language="ILASM" Value=".property bool IsExplicitLayout { 
>public hidebysig specialname instance bool get_IsExplicitLayout() }" />
>       <MemberSignature Language="C#" Value="public bool IsExplicitLayout { get; }" />
>       <MemberType>Property</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Boolean</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para> Gets a <see cref="T:System.Boolean" /> value indicating
>    whether the type layout attribute <see 
>cref="F:System.Reflection.TypeAttributes.ExplicitLayout" /> is specified for the <see 
>cref="T:System.Type" />.</para>
>         </summary>
>         <value>
>           <para>
>             <see langword="true" /> if the type layout attribute <see 
>cref="F:System.Reflection.TypeAttributes.ExplicitLayout" /> is specified for the 
>current <see cref="T:System.Type" />; otherwise,
> <see langword="false" />.</para>
>         </value>
>         <remarks>
>           <para>This property is read-only.</para>
>           <block subset="none" type="note">
>             <para>Types marked with the <see 
>cref="F:System.Reflection.TypeAttributes.ExplicitLayout" /> attribute cause
>       the system to ignore field sequence and to use the explicit layout rules 
>provided,
>       in the form of field offsets, overall class size and alignment. </para>
>           </block>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="IsClass">
>       <MemberSignature Language="ILASM" Value=".property bool IsClass { public 
>hidebysig specialname instance bool get_IsClass() }" />
>       <MemberSignature Language="C#" Value="public bool IsClass { get; }" />
>       <MemberType>Property</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Boolean</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para> Gets a <see cref="T:System.Boolean" /> value that indicates whether 
>the current <see cref="T:System.Type" /> represents a class.</para>
>         </summary>
>         <value>
>           <para>
>             <see langword="true" /> if the current <see cref="T:System.Type" /> 
>represents a class;
>    otherwise <see langword="false" />. </para>
>         </value>
>         <remarks>
>           <para>This property is read-only.</para>
>           <para>Note that this property returns <see langword="true" /> for
> <see cref="T:System.Type" /> instances 
>    representing <see cref="T:System.Enum" /> and <see cref="T:System.ValueType" /> 
>.</para>
>         </remarks>
>       </Docs>
>       <Excluded>0</Excluded>
>     </Member>
>     <Member MemberName="IsInterface">
>       <MemberSignature Language="ILASM" Value=".property bool IsInterface { public 
>hidebysig specialname instance bool get_IsInterface() }" />
>       <MemberSignature Language="C#" Value="public bool IsInterface { get; }" />
>       <MemberType>Property</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Boolean</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para>Gets a <see cref="T:System.Boolean" /> value that indicates whether 
>the  current <see cref="T:System.Type" /> represents an interface.</para>
>         </summary>
>         <value>
>           <para>
>             <see langword="true" /> if the current <see cref="T:System.Type" />  
>represents an
>    interface; otherwise <see langword="false" />. </para>
>         </value>
>         <remarks>
>           <para>This property is read-only.</para>
>         </remarks>
>       </Docs>
>       <Excluded>0</Excluded>
>     </Member>
>     <Member MemberName="IsValueType">
>       <MemberSignature Language="ILASM" Value=".property bool IsValueType { public 
>hidebysig specialname instance bool get_IsValueType() }" />
>       <MemberSignature Language="C#" Value="public bool IsValueType { get; }" />
>       <MemberType>Property</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Boolean</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para>Gets a <see cref="T:System.Boolean" /> value that indicates whether 
>the current <see cref="T:System.Type" /> represents a value type.</para>
>         </summary>
>         <value>
>           <para>
>             <see langword="true" /> if the current <see cref="T:System.Type" /> 
>represents a value
>    type (structure); otherwise <see langword="false" />. </para>
>         </value>
>         <remarks>
>           <para>This property is read-only.</para>
>           <para>This property returns true for enumerations, but not for
>       the <see cref="T:System.Enum" /> type
>       itself, which is a class. <block subset="none" type="note">For an example
>       that demonstrates this behavior, see <see cref="P:System.Type.IsEnum" />
>       .</block></para>
>         </remarks>
>       </Docs>
>       <Excluded>0</Excluded>
>     </Member>
>     <Member MemberName="IsAbstract">
>       <MemberSignature Language="ILASM" Value=".property bool IsAbstract { public 
>hidebysig specialname instance bool get_IsAbstract() }" />
>       <MemberSignature Language="C#" Value="public bool IsAbstract { get; }" />
>       <MemberType>Property</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Boolean</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para> Gets a <see cref="T:System.Boolean" /> value indicating 
>    whether the type represented by the current instance is abstract and is required 
>to be overridden.</para>
>         </summary>
>         <value>
>           <para>
>             <see langword="true" /> if the <see cref="T:System.Type" /> is abstract; 
>otherwise, <see langword="false" />.</para>
>         </value>
>         <remarks>
>           <para>This property is read-only.</para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="IsSealed">
>       <MemberSignature Language="ILASM" Value=".property bool IsSealed { public 
>hidebysig specialname instance bool get_IsSealed() }" />
>       <MemberSignature Language="C#" Value="public bool IsSealed { get; }" />
>       <MemberType>Property</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Boolean</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para> Gets a <see cref="T:System.Boolean" /> value indicating whether the 
>current <see cref="T:System.Type" /> is declared sealed.</para>
>         </summary>
>         <value>
>           <para>
>             <see langword="true" /> if the <see cref="T:System.Type" /> is declared 
>sealed; otherwise, <see langword="false" />. </para>
>         </value>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="IsEnum">
>       <MemberSignature Language="ILASM" Value=".property bool IsEnum { public 
>hidebysig specialname instance bool get_IsEnum() }" />
>       <MemberSignature Language="C#" Value="public bool IsEnum { get; }" />
>       <MemberType>Property</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Boolean</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para> Gets a <see cref="T:System.Boolean" /> value that indicates whether 
>the current <see cref="T:System.Type" /> represents an enumeration.</para>
>         </summary>
>         <value>
>           <para>
>             <see langword="true" /> if the current <see cref="T:System.Type" /> 
>represents an
>    enumeration; otherwise <see langword="false" />. </para>
>         </value>
>         <remarks>
>           <para>This property is read-only.</para>
>           <para>This property returns <see langword="true" /> for an enumeration, 
>but not
>    for the <see cref="T:System.Enum" />
>    type itself, which is a class.</para>
>         </remarks>
>         <example>
>           <para>The following example demonstrates using the <see 
>cref="P:System.Type.IsEnum" />
> property.</para>
>           <code lang="C#">using System;
> public enum Color {
> Red, Blue, Green
> }
> class TestType {
>  public static void Main() {
>  Type colorType = typeof(Color);
>  Type enumType = 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="IsSpecialName">
>       <MemberSignature Language="ILASM" Value=".property bool IsSpecialName { public 
>hidebysig specialname instance bool get_IsSpecialName() }" />
>       <MemberSignature Language="C#" Value="public bool IsSpecialName { get; }" />
>       <MemberType>Property</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Boolean</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para> Gets a <see cref="T:System.Boolean" /> value indicating whether the 
>current <see cref="T:System.Type" /> has a name that requires special handling.</para>
>         </summary>
>         <value>
>           <para>
>             <see langword="true" /> if the <see cref="T:System.Type" /> has a name 
>that requires special handling; otherwise, <see langword="false" />. </para>
>         </value>
>         <remarks>
>           <para>This property is read-only.</para>
>           <para>
>             <block subset="none" type="note">Names that begin with or contain 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="IsImport">
>       <MemberSignature Language="ILASM" Value=".property bool IsImport { public 
>hidebysig specialname instance bool get_IsImport() }" />
>       <MemberSignature Language="C#" Value="public bool IsImport { get; }" />
>       <MemberType>Property</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Boolean</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para> Gets a <see cref="T:System.Boolean" /> value indicating whether the 
><see cref="T:System.Type" /> was imported from another class.</para>
>         </summary>
>         <value>
>           <para>
>             <see langword="true" /> if the <see cref="T:System.Type" /> was imported 
>from another class; otherwise, <see langword="false" />. </para>
>         </value>
>         <remarks>
>           <para>This property is read-only.</para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="IsArray">
>       <MemberSignature Language="ILASM" Value=".property bool IsArray { public 
>hidebysig specialname instance bool get_IsArray() }" />
>       <MemberSignature Language="C#" Value="public bool IsArray { get; }" />
>       <MemberType>Property</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Boolean</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para>Gets a <see cref="T:System.Boolean" /> value that indicates whether 
>the current <see cref="T:System.Type" /> represents an array.</para>
>         </summary>
>         <value>
>           <para>
>             <see langword="true" /> if the current <see cref="T:System.Type" /> 
>represents an
>    array; otherwise <see langword="false" />. </para>
>         </value>
>         <remarks>
>           <para>This property is read-only.</para>
>           <para>This property returns <see langword="true" /> for an array of 
>objects, but
>    not for the <see cref="T:System.Array" />
>    type itself, which is a class.</para>
>         </remarks>
>         <example>
>           <para>The following example demonstrates using the <see 
>cref="P:System.Type.IsArray" />
> property.</para>
>           <code lang="C#">using System;
> class TestType {
>  public static void Main() {
>  int [] array = {1,2,3,4};
>  Type at = typeof(Array);
>  Type t = 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="IsByRef">
>       <MemberSignature Language="ILASM" Value=".property bool IsByRef { public 
>hidebysig specialname instance bool get_IsByRef() }" />
>       <MemberSignature Language="C#" Value="public bool IsByRef { get; }" />
>       <MemberType>Property</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Boolean</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para>Gets a <see cref="T:System.Boolean" /> value indicating whether the 
><see cref="T:System.Type" /> is
>    passed by reference.</para>
>         </summary>
>         <value>
>           <para>
>             <see langword="true" /> if the <see cref="T:System.Type" /> is passed by 
>reference; otherwise, <see langword="false" />. </para>
>         </value>
>         <remarks>
>           <para>This property is read-only.</para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="IsPointer">
>       <MemberSignature Language="ILASM" Value=".property bool IsPointer { public 
>hidebysig specialname instance bool get_IsPointer() }" />
>       <MemberSignature Language="C#" Value="public bool IsPointer { get; }" />
>       <MemberType>Property</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Boolean</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para>Gets a <see cref="T:System.Boolean" /> value that indicates whether 
>the current <see cref="T:System.Type" /> represents a pointer.</para>
>         </summary>
>         <value>
>           <para>This property is read-only.</para>
>           <para>
>             <see langword="true" /> if the current <see cref="T:System.Type" /> 
>represents a
>    pointer; otherwise <see langword="false" />. </para>
>         </value>
>         <remarks>
>           <para>This property is read-only.</para>
>         </remarks>
>       </Docs>
>       <Excluded>0</Excluded>
>     </Member>
>     <Member MemberName="IsPrimitive">
>       <MemberSignature Language="ILASM" Value=".property bool IsPrimitive { public 
>hidebysig specialname instance bool get_IsPrimitive() }" />
>       <MemberSignature Language="C#" Value="public bool IsPrimitive { get; }" />
>       <MemberType>Property</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Boolean</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para>Gets a <see cref="T:System.Boolean" /> value indicating whether the 
>current <see cref="T:System.Type" /> is one of the primitive types.</para>
>         </summary>
>         <value>
>           <para>
>             <see langword="true" /> if the <see cref="T:System.Type" /> is one of 
>the primitive types; otherwise, <see langword="false" />. </para>
>         </value>
>         <remarks>
>           <para>This property is read-only.</para>
>           <para>The primitive types are <see cref="T:System.Boolean" />, <see 
>cref="T:System.Byte" />, <see cref="T:System.SByte" />, <see cref="T:System.Int16" 
>/>, <see cref="T:System.UInt16" />, <see cref="T:System.Int32" />, <see 
>cref="T:System.UInt32" />, <see cref="T:System.Int64" />, <see cref="T:System.UInt64" 
>/>, <see cref="T:System.Char" />, <see cref="T:System.Double" />, and <see 
>cref="T:System.Single" />.</para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="HasElementType">
>       <MemberSignature Language="ILASM" Value=".property bool HasElementType { 
>public hidebysig specialname instance bool get_HasElementType() }" />
>       <MemberSignature Language="C#" Value="public bool HasElementType { get; }" />
>       <MemberType>Property</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Boolean</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para>Gets a <see cref="T:System.Boolean" /> value indicating whether the 
>type represented by the 
>    current instance encompasses or refers
>    to another type; that is, whether the current <see cref="T:System.Type" /> is an 
>array, a pointer, or is passed by reference.</para>
>         </summary>
>         <value>
>           <para>
>             <see langword="true" /> if the <see cref="T:System.Type" /> is an array, 
>a pointer, or is passed by reference; otherwise, <see langword="false" />. </para>
>         </value>
>         <remarks>
>           <para>This property is read-only.</para>
>           <para>
>             <block subset="none" type="note">For example, <see 
>cref="M:System.Type.GetType(System.String,System.Boolean,System.Boolean)" />("<see 
>cref="T:System.Int32" /> []").HasElementType returns
> <see langword="true" />, but <see 
>cref="M:System.Type.GetType(System.String,System.Boolean,System.Boolean)" />("<see 
>cref="T:System.Int32" /> ").HasElementType returns
> <see langword="false" />. <see cref="P:System.Type.HasElementType" /> also returns
> <see langword="true" /> for "Int32*" and "Int32&amp;".</block>
>           </para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="IsMarshalByRef">
>       <MemberSignature Language="ILASM" Value=".property bool IsMarshalByRef { 
>public hidebysig specialname instance bool get_IsMarshalByRef() }" />
>       <MemberSignature Language="C#" Value="public bool IsMarshalByRef { get; }" />
>       <MemberType>Property</MemberType>
>       <ReturnValue>
>         <ReturnType>System.Boolean</ReturnType>
>       </ReturnValue>
>       <Parameters />
>       <Docs>
>         <summary>
>           <para>Gets a <see cref="T:System.Boolean" /> value indicating whether the 
>current type is marshaled by reference.</para>
>         </summary>
>         <value>
>           <para>
>             <see langword="true" /> if the <see cref="T:System.Type" /> is marshaled 
>by reference; otherwise, <see langword="false" />. </para>
>         </value>
>         <remarks>
>           <para>This property is read-only.</para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>     <Member MemberName="UnderlyingSystemType">
>       <MemberSignature Language="ILASM" Value=".property class System.Type 
>UnderlyingSystemType { public hidebysig virtual abstract specialname class 
>System.Type get_UnderlyingSystemType() }" />
>       <MemberSignature Language="C#" Value="public abstract Type 
>UnderlyingSystemType { 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="T:System.Type" 
>/>.</para>
>         </value>
>         <remarks>
>           <para>This property is read-only.</para>
>           <para>
>             <block subset="none" type="behaviors">As described 
>       above.</block>
>           </para>
>         </remarks>
>       </Docs>
>       <Excluded>1</Excluded>
>       <ExcludedLibrary>Reflection</ExcludedLibrary>
>     </Member>
>   </Members>
>   <TypeExcluded>0</TypeExcluded>
> </Type>



Attachment: xsl.tar.gz
Description: GNU Zip compressed data

Reply via email to