DebuggerTypeProxyAttribute Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menentukan proksi tampilan untuk tipe.
public ref class DebuggerTypeProxyAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Struct, AllowMultiple=true)]
public sealed class DebuggerTypeProxyAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Struct, AllowMultiple=true)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class DebuggerTypeProxyAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Struct, AllowMultiple=true)>]
type DebuggerTypeProxyAttribute = class
inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Struct, AllowMultiple=true)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type DebuggerTypeProxyAttribute = class
inherit Attribute
Public NotInheritable Class DebuggerTypeProxyAttribute
Inherits Attribute
- Warisan
- Atribut
Contoh
Contoh kode berikut menunjukkan penggunaan DebuggerTypeProxyAttribute untuk menentukan jenis berlapis privat yang akan digunakan sebagai proksi tampilan debugger. Contoh kode ini adalah bagian dari contoh yang lebih besar yang disediakan untuk DebuggerDisplayAttribute kelas .
[DebuggerTypeProxy(typeof(HashtableDebugView))]
class MyHashtable : Hashtable
{
private const string TestString = "This should not appear in the debug window.";
internal class HashtableDebugView
{
private Hashtable hashtable;
public const string TestString = "This should appear in the debug window.";
public HashtableDebugView(Hashtable hashtable)
{
this.hashtable = hashtable;
}
[DebuggerBrowsable(DebuggerBrowsableState.RootHidden)]
public KeyValuePairs[] Keys
{
get
{
KeyValuePairs[] keys = new KeyValuePairs[hashtable.Count];
int i = 0;
foreach(object key in hashtable.Keys)
{
keys[i] = new KeyValuePairs(hashtable, key, hashtable[key]);
i++;
}
return keys;
}
}
}
}
<DebuggerDisplay("Count = {Count}"), DebuggerTypeProxy(GetType(MyHashtable.HashtableDebugView))> _
Class MyHashtable
Inherits Hashtable
Private Const TestString As String = "This should not appear in the debug window."
Friend Class HashtableDebugView
Private hashtable As Hashtable
Public Shared TestString As String = "This should appear in the debug window."
Public Sub New(ByVal hashtable As Hashtable)
Me.hashtable = hashtable
End Sub
<DebuggerBrowsable(DebuggerBrowsableState.RootHidden)> _
ReadOnly Property Keys as KeyValuePairs()
Get
Dim nkeys(hashtable.Count) as KeyValuePairs
Dim i as Integer = 0
For Each key As Object In hashtable.Keys
nkeys(i) = New KeyValuePairs(hashtable, key, hashtable(key))
i = i + 1
Next
Return nkeys
End Get
End Property
End Class
End Class
Keterangan
Catatan Gunakan atribut ini saat Anda perlu mengubah tampilan penelusuran kesalahan jenis secara signifikan dan mendasar, tetapi tidak mengubah jenis itu sendiri.
Atribut DebuggerTypeProxyAttribute digunakan untuk menentukan proksi tampilan untuk jenis, memungkinkan pengembang untuk menyesuaikan tampilan untuk jenis tersebut. Atribut ini juga dapat digunakan pada tingkat perakitan, dalam hal ini Target properti menentukan jenis yang proksinya akan digunakan. Secara umum, atribut ini menentukan jenis berlapis privat yang terjadi dalam jenis yang atributnya diterapkan. Pengurai ekspresi yang mendukung penampil tipe memeriksa atribut ini saat tipe ditampilkan. Jika atribut ditemukan, evaluator ekspresi menggantikan jenis proksi tampilan untuk jenis atribut yang diterapkan.
Ketika DebuggerBrowsableAttribute ada, jendela variabel debugger hanya menampilkan anggota publik dari tipe proksi. Anggota privat tidak ditampilkan. Perilaku jendela data tidak diubah oleh tampilan yang ditingkatkan atributnya.
Untuk menghindari penalti performa yang tidak perlu, evaluator ekspresi tidak boleh memeriksa atribut pada proksi tampilan jenis kecuali jenis diperluas, baik melalui pengguna yang mengklik tanda plus (+) di samping jenis di jendela data, atau melalui aplikasi DebuggerBrowsableAttribute atribut. Oleh karena itu, disarankan agar tidak ada atribut yang diterapkan ke jenis tampilan. Atribut dapat dan harus diterapkan dalam isi jenis tampilan.
Konstruktor
| Nama | Deskripsi |
|---|---|
| DebuggerTypeProxyAttribute(String) |
Menginisialisasi instans DebuggerTypeProxyAttribute baru kelas menggunakan nama jenis proksi. |
| DebuggerTypeProxyAttribute(Type) |
Menginisialisasi instans DebuggerTypeProxyAttribute baru kelas menggunakan jenis proksi. |
Properti
| Nama | Deskripsi |
|---|---|
| ProxyTypeName |
Mendapatkan nama jenis jenis proksi. |
| Target |
Mendapatkan atau menetapkan jenis target untuk atribut . |
| TargetTypeName |
Mendapatkan atau mengatur nama jenis target. |
| TypeId |
Ketika diimplementasikan dalam kelas turunan, mendapatkan pengidentifikasi unik untuk Attributeini. (Diperoleh dari Attribute) |
Metode
| Nama | Deskripsi |
|---|---|
| Equals(Object) |
Mengembalikan nilai yang menunjukkan apakah instans ini sama dengan objek tertentu. (Diperoleh dari Attribute) |
| GetHashCode() |
Mengembalikan kode hash untuk instans ini. (Diperoleh dari Attribute) |
| GetType() |
Mendapatkan Type instans saat ini. (Diperoleh dari Object) |
| IsDefaultAttribute() |
Ketika ditimpa dalam kelas turunan, menunjukkan apakah nilai instans ini adalah nilai default untuk kelas turunan. (Diperoleh dari Attribute) |
| Match(Object) |
Saat ditimpa dalam kelas turunan, mengembalikan nilai yang menunjukkan apakah instans ini sama dengan objek tertentu. (Diperoleh dari Attribute) |
| MemberwiseClone() |
Membuat salinan dangkal dari Objectsaat ini. (Diperoleh dari Object) |
| ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |
Implementasi Antarmuka Eksplisit
| Nama | Deskripsi |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Memetakan sekumpulan nama ke sekumpulan pengidentifikasi pengiriman yang sesuai. (Diperoleh dari Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Mengambil informasi jenis untuk objek, yang dapat digunakan untuk mendapatkan informasi jenis untuk antarmuka. (Diperoleh dari Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Mengambil jumlah antarmuka informasi jenis yang disediakan objek (baik 0 atau 1). (Diperoleh dari Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Menyediakan akses ke properti dan metode yang diekspos oleh objek. (Diperoleh dari Attribute) |