﻿<?xml version="1.0" encoding="utf-8"?><Type Name="TypedReference" FullName="System.TypedReference"><TypeSignature Maintainer="auto" Language="C#" Value="public struct TypedReference" /><TypeSignature Language="ILAsm" Value=".class public sequential ansi sealed beforefieldinit TypedReference extends System.ValueType" /><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.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ThreadSafetyStatement>Gtk# is thread aware, but not thread safe; See the &lt;link location="node:gtk-sharp/programming/threads"&gt;Gtk# Thread Programming&lt;/link&gt; for details.</ThreadSafetyStatement><Base><BaseTypeName>System.ValueType</BaseTypeName></Base><Interfaces /><Attributes><Attribute><AttributeName>System.CLSCompliant(false)</AttributeName></Attribute><Attribute><AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName></Attribute></Attributes><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>A typed reference is a type/value combination used for varargs and other support. TypedReference is a built-in value type that can be used for parameters and local variables.</para><para>Arrays of TypedReference objects cannot be created. For example, the following call is invalid: </para><para>code reference: System.TypedReference#1</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Describes objects that contain both a managed pointer to a location and a runtime representation of the type that may be stored at that location.</para></summary></Docs><Members><Member MemberName="Equals"><MemberSignature Language="C#" Value="public override bool Equals (object o);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance bool Equals(object o) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Parameters><Parameter Name="o" Type="System.Object" /></Parameters><Docs><remarks><para><block subset="none" type="note">This method
      overrides <see cref="M:System.Object.Equals(System.Object)" />.</block></para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Checks if this object is equal to the specified object.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>true if this object is equal to the specified object; otherwise, false.</para></returns><param name="o"><attribution license="cc4" from="Microsoft" modified="false" />The object with which to compare the current object. </param></Docs></Member><Member MemberName="GetHashCode"><MemberSignature Language="C#" Value="public override int GetHashCode ();" /><MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance int32 GetHashCode() cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Int32</ReturnType></ReturnValue><Parameters /><Docs><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><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Returns the hash code of this object.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>The hash code of this object.</para></returns></Docs></Member><Member MemberName="GetTargetType"><MemberSignature Language="C#" Value="public static Type GetTargetType (TypedReference value);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Type GetTargetType(valuetype System.TypedReference value) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Type</ReturnType></ReturnValue><Parameters><Parameter Name="value" Type="System.TypedReference" /></Parameters><Docs><remarks>To be added</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Returns the type of the target of the specified TypedReference.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>The type of the target of the specified TypedReference.</para></returns><param name="value"><attribution license="cc4" from="Microsoft" modified="false" />The value whose target's type is to be returned. </param></Docs></Member><Member MemberName="MakeTypedReference"><MemberSignature Language="C#" Value="public static TypedReference MakeTypedReference (object target, System.Reflection.FieldInfo[] flds);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.TypedReference MakeTypedReference(object target, class System.Reflection.FieldInfo[] flds) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.CLSCompliant(false)</AttributeName></Attribute></Attributes><ReturnValue><ReturnType>System.TypedReference</ReturnType></ReturnValue><Parameters><Parameter Name="target" Type="System.Object" /><Parameter Name="flds" Type="System.Reflection.FieldInfo[]" /></Parameters><Docs><exception cref="T:System.ArgumentException"><para>The 
<paramref name="flds" /> array has no elements. </para><para>-or-</para><para>An element of <paramref name="flds" /> is not a <see cref="T:System.Reflection.FieldInfo" />. </para></exception><exception cref="T:System.ArgumentNullException"><para><paramref name="target" /> or <paramref name="flds" /> is <see langword="null" />. </para><para>-or-</para><para>An element of <paramref name="flds" /> is <see langword="null" />. </para></exception><exception cref="T:System.MissingMemberException"><para>Parameter <paramref name="target" /> does not contain the field described by the first element of <paramref name="flds" />, or an element of <paramref name="flds" /> describes a field that is not contained in the field described by the succeeding element of <paramref name="flds" />. </para><para>-or-</para><para>The field described by an element of <paramref name="flds" /> is not a value type.</para></exception><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="M:System.TypedReference.MakeTypedReference(System.Object,System.Reflection.FieldInfo[])" /> method returns a typed reference to some terminal field, where the <paramref name="target" /> parameter contains the field described by the first element of <paramref name="flds" />, the field described by the first element of <paramref name="flds" /> contains the field described by the second element of <paramref name="flds" />, and so on until the terminal field is reached.</para><para>For an explanation of run-time type system objects such as RuntimeFieldInfo, see <format type="text/html"><a href="c1439fb5-cf76-475d-a9d2-fe64ba858858">Runtime Types in Reflection</a></format>.</para><block subset="none" type="note"><para>Starting with the net_v20sp1_long, this method can be used to access non-public members if the caller has been granted <see cref="T:System.Security.Permissions.ReflectionPermission" /> with the <see cref="F:System.Security.Permissions.ReflectionPermissionFlag.RestrictedMemberAccess" /> flag and if the grant set of the non-public members is restricted to the caller’s grant set, or a subset thereof. (See <format type="text/html"><a href="42d9dc2a-8fcc-4ff3-b002-4ff260ef3dc5">Security Considerations for Reflection</a></format>.) </para><para>To use this functionality, your application should target the net_v35_long or later.</para></block></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Makes a TypedReference for a field identified by a specified object and list of field descriptions.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>A <see cref="T:System.TypedReference" /> for the field described by the last element of <paramref name="flds" />.</para></returns><param name="target"><attribution license="cc4" from="Microsoft" modified="false" />An object that contains the field described by the first element of <paramref name="flds" />. </param><param name="flds"><attribution license="cc4" from="Microsoft" modified="false" />A list of field descriptions where each element describes a field that contains the field described by the succeeding element. Each described field must be a value type. The field descriptions must be RuntimeFieldInfo objects supplied by the type system.</param></Docs></Member><Member MemberName="SetTypedReference"><MemberSignature Language="C#" Value="public static void SetTypedReference (TypedReference target, object value);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig void SetTypedReference(valuetype System.TypedReference target, object value) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.CLSCompliant(false)</AttributeName></Attribute></Attributes><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="target" Type="System.TypedReference" /><Parameter Name="value" Type="System.Object" /></Parameters><Docs><remarks><para>This method converts <paramref name="value" /> to <paramref name="target" />.</para></remarks><exception cref="T:System.ArgumentNullException"><para><paramref name="value" /> is <see langword="null" />. </para></exception><exception cref="T:System.InvalidCastException"><para>The requested conversion is not possible.</para></exception><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Converts the specified value to a TypedReference. This method is not supported.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>This method always throws <see cref="T:System.NotSupportedException" />.</para></returns><param name="target"><attribution license="cc4" from="Microsoft" modified="false" />The target of the conversion. </param><param name="value"><attribution license="cc4" from="Microsoft" modified="false" />The value to be converted. </param></Docs></Member><Member MemberName="TargetTypeToken"><MemberSignature Language="C#" Value="public static RuntimeTypeHandle TargetTypeToken (TypedReference value);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.RuntimeTypeHandle TargetTypeToken(valuetype System.TypedReference value) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.RuntimeTypeHandle</ReturnType></ReturnValue><Parameters><Parameter Name="value" Type="System.TypedReference" /></Parameters><Docs><remarks>To be added</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Returns the internal metadata type handle for the specified TypedReference.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>The internal metadata type handle for the specified TypedReference.</para></returns><param name="value"><attribution license="cc4" from="Microsoft" modified="false" />The TypedReference for which the type handle is requested. </param></Docs></Member><Member MemberName="ToObject"><MemberSignature Language="C#" Value="public static object ToObject (TypedReference value);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig object ToObject(valuetype System.TypedReference value) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Object</ReturnType></ReturnValue><Parameters><Parameter Name="value" Type="System.TypedReference" /></Parameters><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>This might be a boxing operation.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Converts the specified TypedReference to an Object.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>An <see cref="T:System.Object" /> converted from a TypedReference.</para></returns><param name="value"><attribution license="cc4" from="Microsoft" modified="false" />The TypedReference to be converted. </param></Docs></Member></Members></Type>