﻿<?xml version="1.0" encoding="utf-8"?><Type Name="DebuggerTypeProxyAttribute" FullName="System.Diagnostics.DebuggerTypeProxyAttribute"><TypeSignature Language="C#" Value="public sealed class DebuggerTypeProxyAttribute : Attribute" /><TypeSignature Language="ILAsm" Value=".class public auto ansi sealed beforefieldinit DebuggerTypeProxyAttribute extends System.Attribute" /><AssemblyInfo><AssemblyName>mscorlib</AssemblyName><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Base><BaseTypeName>System.Attribute</BaseTypeName></Base><Interfaces /><Attributes><Attribute><AttributeName>System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Struct | System.AttributeTargets.All, AllowMultiple=true)</AttributeName></Attribute><Attribute><AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName></Attribute></Attributes><Docs><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>Note   Use this attribute when you need to significantly and fundamentally change the debugging view of a type, but not change the type itself.</para><para>The <see cref="T:System.Diagnostics.DebuggerTypeProxyAttribute" /> attribute is used to specify a display proxy for a type, allowing a developer to tailor the view for the type.  This attribute can be used at the assembly level as well, in which case the <see cref="P:System.Diagnostics.DebuggerTypeProxyAttribute.Target" /> property specifies the type for which the proxy will be used. In general, this attribute specifies a private nested type that occurs within the type to which the attribute is applied.  An expression evaluator that supports type viewers checks for this attribute when a type is displayed. If the attribute is found, the expression evaluator substitutes the display proxy type for the type the attribute is applied to.</para><para>When the <see cref="T:System.Diagnostics.DebuggerBrowsableAttribute" /> is present, the debugger variable window displays only the public members of the proxy type. Private members are not displayed. The behavior of the data window is not changed by attribute-enhanced views. </para><para>To avoid unnecessary performance penalties, expression evaluators should not examine the attributes on the display proxy of the type unless the type is expanded, either through the user clicking the plus sign (+) next to the type in a data window, or through the application of the <see cref="T:System.Diagnostics.DebuggerBrowsableAttribute" /> attribute. Therefore, it is recommended that no attributes be applied to the display type. Attributes can and should be applied within the body of the display type.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Specifies the display proxy for a type.</para></summary></Docs><Members><Member MemberName=".ctor"><MemberSignature Language="C#" Value="public DebuggerTypeProxyAttribute (string typeName);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(string typeName) cil managed" /><MemberType>Constructor</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Parameters><Parameter Name="typeName" Type="System.String" /></Parameters><Docs><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The debugger creates a new instance of the type proxy class every time it needs to display a variable of the target type. This can have performance implications. As a result, you should not do any more work in the constructor than absolutely necessary.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Initializes a new instance of the <see cref="T:System.Diagnostics.DebuggerTypeProxyAttribute" /> class using the type name of the proxy. </para></summary><param name="typeName"><attribution license="cc4" from="Microsoft" modified="false" />The type name of the proxy type.</param></Docs></Member><Member MemberName=".ctor"><MemberSignature Language="C#" Value="public DebuggerTypeProxyAttribute (Type type);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(class System.Type type) cil managed" /><MemberType>Constructor</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Parameters><Parameter Name="type" Type="System.Type" /></Parameters><Docs><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The debugger creates a new instance of the type proxy class every time it needs to display a variable of the target type. This can have performance implications. As a result, you should not do any more work in the constructor than absolutely necessary.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Initializes a new instance of the <see cref="T:System.Diagnostics.DebuggerTypeProxyAttribute" /> class using the type of the proxy. </para></summary><param name="type"><attribution license="cc4" from="Microsoft" modified="false" />The proxy type.</param></Docs></Member><Member MemberName="ProxyTypeName"><MemberSignature Language="C#" Value="public string ProxyTypeName { get; }" /><MemberSignature Language="ILAsm" Value=".property instance string ProxyTypeName" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.String</ReturnType></ReturnValue><Docs><value>To be added.</value><remarks>To be added.</remarks><since version=".NET 2.0" /><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets the type name of the proxy type. </para></summary></Docs></Member><Member MemberName="Target"><MemberSignature Language="C#" Value="public Type Target { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance class System.Type Target" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Type</ReturnType></ReturnValue><Docs><value>To be added.</value><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>Use this property to specify the target type when the attribute is used at the assembly level.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets the target type for the attribute.</para></summary></Docs></Member><Member MemberName="TargetTypeName"><MemberSignature Language="C#" Value="public string TargetTypeName { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance string TargetTypeName" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.String</ReturnType></ReturnValue><Docs><value>To be added.</value><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>Use this property to specify the name of the target type when the attribute is used at the assembly level.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets the name of the target type.</para></summary></Docs></Member></Members></Type>