PropertyInfo.GetAccessors Metode
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.
Mengembalikan array pengaktor get
dan set
pada properti ini.
Overload
GetAccessors() |
Mengembalikan array yang elemennya mencerminkan publik |
GetAccessors(Boolean) |
Mengembalikan array yang elemennya mencerminkan publik dan, jika ditentukan, non-publik |
GetAccessors()
- Sumber:
- PropertyInfo.cs
- Sumber:
- PropertyInfo.cs
- Sumber:
- PropertyInfo.cs
Mengembalikan array yang elemennya mencerminkan publik get
dan set
aksesor properti yang tercermin oleh instans saat ini.
public:
cli::array <System::Reflection::MethodInfo ^> ^ GetAccessors();
public:
virtual cli::array <System::Reflection::MethodInfo ^> ^ GetAccessors();
public System.Reflection.MethodInfo[] GetAccessors ();
member this.GetAccessors : unit -> System.Reflection.MethodInfo[]
abstract member GetAccessors : unit -> System.Reflection.MethodInfo[]
override this.GetAccessors : unit -> System.Reflection.MethodInfo[]
Public Function GetAccessors () As MethodInfo()
Mengembalikan
Array MethodInfo objek yang mencerminkan publik get
dan set
aksesor properti yang tercermin oleh instans saat ini, jika ditemukan; jika tidak, metode ini mengembalikan array dengan elemen nol (0).
Penerapan
Contoh
Contoh berikut mengambil pengaktor publik properti dan menampilkan informasi tentang properti tersebut ClassWithProperty.Caption
. Ini juga memanggil Invoke metode setter untuk mengatur nilai properti dan getter untuk mengambil nilai properti.
using System;
using System.Reflection;
// Define a property.
public class ClassWithProperty
{
private string _caption = "A Default caption";
public string Caption
{
get { return _caption; }
set { if(_caption != value) _caption = value; }
}
}
class Example
{
public static void Main()
{
ClassWithProperty test = new ClassWithProperty();
Console.WriteLine("The Caption property: {0}", test.Caption);
Console.WriteLine("----------");
// Get the type and PropertyInfo.
Type t = Type.GetType("ClassWithProperty");
PropertyInfo propInfo = t.GetProperty("Caption");
// Get the public GetAccessors method.
MethodInfo[] methInfos = propInfo.GetAccessors();
Console.WriteLine("There are {0} accessors.",
methInfos.Length);
for(int ctr = 0; ctr < methInfos.Length; ctr++) {
MethodInfo m = methInfos[ctr];
Console.WriteLine("Accessor #{0}:", ctr + 1);
Console.WriteLine(" Name: {0}", m.Name);
Console.WriteLine(" Visibility: {0}", GetVisibility(m));
Console.Write(" Property Type: ");
// Determine if this is the property getter or setter.
if (m.ReturnType == typeof(void)) {
Console.WriteLine("Setter");
Console.WriteLine(" Setting the property value.");
// Set the value of the property.
m.Invoke(test, new object[] { "The Modified Caption" } );
}
else {
Console.WriteLine("Getter");
// Get the value of the property.
Console.WriteLine(" Property Value: {0}",
m.Invoke(test, new object[] {} ));
}
}
Console.WriteLine("----------");
Console.WriteLine("The Caption property: {0}", test.Caption);
}
static string GetVisibility(MethodInfo m)
{
string visibility = "";
if (m.IsPublic)
return "Public";
else if (m.IsPrivate)
return "Private";
else
if (m.IsFamily)
visibility = "Protected ";
else if (m.IsAssembly)
visibility += "Assembly";
return visibility;
}
}
// The example displays the following output:
// The Caption property: A Default caption
// ----------
// There are 2 accessors.
// Accessor #1:
// Name: get_Caption
// Visibility: Public
// Property Type: Getter
// Property Value: A Default caption
// Accessor #2:
// Name: set_Caption
// Visibility: Public
// Property Type: Setter
// Setting the property value.
// ----------
// The Caption property: The Modified Caption
Imports System.Reflection
' Define a property.
Public Class ClassWithProperty
Private _caption As String = "A Default caption"
Public Property Caption As String
Get
Return _caption
End Get
Set
If _caption <> value Then _caption = value
End Set
End Property
End Class
Module Example
Public Sub Main()
Dim test As New ClassWithProperty()
Console.WriteLine("The Caption property: {0}", test.Caption)
Console.WriteLine("----------")
' Get the type and PropertyInfo.
Dim t As Type = Type.GetType("ClassWithProperty")
Dim propInfo As PropertyInfo = t.GetProperty("Caption")
' Get all the accessors.
Dim methInfos() As MethodInfo = propInfo.GetAccessors()
Console.WriteLine("There are {0} accessors.",
methInfos.Length)
For ctr As Integer = 0 To methInfos.Length - 1
Dim m As MethodInfo = methInfos(ctr)
Console.WriteLine("Accessor #{0}:", ctr + 1)
Console.WriteLine(" Name: {0}", m.Name)
Console.WriteLine(" Visibility: {0}", GetVisibility(m))
Console.Write(" Property Type: ")
' Determine if this is the property getter or setter.
'' If (m.ReturnType == typeof(void))
If m.ReturnType Is GetType(Void) Then
Console.WriteLine("Setter")
Console.WriteLine(" Setting the property value.")
' Set the value of the property.
m.Invoke(test, { "The Modified Caption" } )
Else
Console.WriteLine("Getter")
' Get the value of the property.
Console.WriteLine(" Property Value: {0}",
m.Invoke(test, {} ))
End If
Next
Console.WriteLine("----------")
Console.WriteLine("The Caption property: {0}", test.Caption)
End Sub
Private Function GetVisibility(m As MethodInfo) As String
Dim visibility As String = ""
If m.IsPublic Then
Return "Public"
ElseIf m.IsPrivate Then
Return "Private"
Else
If m.IsFamily Then
visibility = "Protected "
ElseIf m.IsAssembly Then
visibility += "Assembly"
End If
End If
Return visibility
End Function
End Module
' The example displays the following output:
' The Caption property: A Default caption
' ----------
' There are 2 accessors.
' Accessor #1:
' Name: get_Caption
' Visibility: Public
' Property Type: Getter
' Property Value: A Default caption
' Accessor #2:
' Name: set_Caption
' Visibility: Public
' Property Type: Setter
' Setting the property value.
' ----------
' The Caption property: The Modified Caption
Keterangan
Untuk memanggil GetAccessors metode :
Type Dapatkan objek yang mewakili kelas .
Type Dari objek , dapatkan PropertyInfo objek .
Dari PropertyInfo objek , panggil GetAccessors metode .
Berlaku untuk
GetAccessors(Boolean)
- Sumber:
- PropertyInfo.cs
- Sumber:
- PropertyInfo.cs
- Sumber:
- PropertyInfo.cs
Mengembalikan array yang elemennya mencerminkan publik dan, jika ditentukan, non-publik get
dan set
aksesor properti yang dicerminkan oleh instans saat ini.
public:
abstract cli::array <System::Reflection::MethodInfo ^> ^ GetAccessors(bool nonPublic);
public abstract System.Reflection.MethodInfo[] GetAccessors (bool nonPublic);
abstract member GetAccessors : bool -> System.Reflection.MethodInfo[]
Public MustOverride Function GetAccessors (nonPublic As Boolean) As MethodInfo()
Parameter
- nonPublic
- Boolean
Menunjukkan apakah metode non-publik harus dikembalikan dalam array yang dikembalikan.
true
jika metode non-publik harus disertakan; jika tidak, false
.
Mengembalikan
Array yang elemennya mencerminkan get
aksesor dan set
properti yang tercermin oleh instans saat ini. Jika nonPublic
adalah true
, array ini berisi publik dan non-publik get
dan set
aksesor. Jika nonPublic
adalah false
, array ini hanya berisi publik get
dan set
aksesor. Jika tidak ada pengaktif dengan visibilitas yang ditentukan yang ditemukan, metode ini mengembalikan array dengan elemen nol (0).
Penerapan
Contoh
Contoh berikut mengambil pengaktor properti dan menampilkan informasi tentang properti tersebut ClassWithProperty.Caption
. Ini juga memanggil Invoke metode setter untuk mengatur nilai properti dan getter untuk mengambil nilai properti.
using System;
using System.Reflection;
// Define a property.
public class ClassWithProperty
{
private string _caption = "A Default caption";
public string Caption
{
get { return _caption; }
set { if(_caption != value) _caption = value; }
}
}
class Example
{
public static void Main()
{
ClassWithProperty test = new ClassWithProperty();
Console.WriteLine("The Caption property: {0}", test.Caption);
Console.WriteLine("----------");
// Get the type and PropertyInfo.
Type t = Type.GetType("ClassWithProperty");
PropertyInfo propInfo = t.GetProperty("Caption");
// Get the public GetAccessors method.
MethodInfo[] methInfos = propInfo.GetAccessors(true);
Console.WriteLine("There are {0} accessors.",
methInfos.Length);
for(int ctr = 0; ctr < methInfos.Length; ctr++) {
MethodInfo m = methInfos[ctr];
Console.WriteLine("Accessor #{0}:", ctr + 1);
Console.WriteLine(" Name: {0}", m.Name);
Console.WriteLine(" Visibility: {0}", GetVisibility(m));
Console.Write(" Property Type: ");
// Determine if this is the property getter or setter.
if (m.ReturnType == typeof(void)) {
Console.WriteLine("Setter");
Console.WriteLine(" Setting the property value.");
// Set the value of the property.
m.Invoke(test, new object[] { "The Modified Caption" } );
}
else {
Console.WriteLine("Getter");
// Get the value of the property.
Console.WriteLine(" Property Value: {0}",
m.Invoke(test, new object[] {} ));
}
}
Console.WriteLine("----------");
Console.WriteLine("The Caption property: {0}", test.Caption);
}
static string GetVisibility(MethodInfo m)
{
string visibility = "";
if (m.IsPublic)
return "Public";
else if (m.IsPrivate)
return "Private";
else
if (m.IsFamily)
visibility = "Protected ";
else if (m.IsAssembly)
visibility += "Assembly";
return visibility;
}
}
// The example displays the following output:
// The Caption property: A Default caption
// ----------
// There are 2 accessors.
// Accessor #1:
// Name: get_Caption
// Visibility: Public
// Property Type: Getter
// Property Value: A Default caption
// Accessor #2:
// Name: set_Caption
// Visibility: Public
// Property Type: Setter
// Setting the property value.
// ----------
// The Caption property: The Modified Caption
Imports System.Reflection
' Define a property.
Public Class ClassWithProperty
Private _caption As String = "A Default caption"
Public Property Caption As String
Get
Return _caption
End Get
Set
If _caption <> value Then _caption = value
End Set
End Property
End Class
Module Example
Public Sub Main()
Dim test As New ClassWithProperty()
Console.WriteLine("The Caption property: {0}", test.Caption)
Console.WriteLine("----------")
' Get the type and PropertyInfo.
Dim t As Type = Type.GetType("ClassWithProperty")
Dim propInfo As PropertyInfo = t.GetProperty("Caption")
' Get all the accessors.
Dim methInfos() As MethodInfo = propInfo.GetAccessors(True)
Console.WriteLine("There are {0} accessors.",
methInfos.Length)
For ctr As Integer = 0 To methInfos.Length - 1
Dim m As MethodInfo = methInfos(ctr)
Console.WriteLine("Accessor #{0}:", ctr + 1)
Console.WriteLine(" Name: {0}", m.Name)
Console.WriteLine(" Visibility: {0}", GetVisibility(m))
Console.Write(" Property Type: ")
' Determine if this is the property getter or setter.
'' If (m.ReturnType == typeof(void))
If m.ReturnType Is GetType(Void) Then
Console.WriteLine("Setter")
Console.WriteLine(" Setting the property value.")
' Set the value of the property.
m.Invoke(test, { "The Modified Caption" } )
Else
Console.WriteLine("Getter")
' Get the value of the property.
Console.WriteLine(" Property Value: {0}",
m.Invoke(test, {} ))
End If
Next
Console.WriteLine("----------")
Console.WriteLine("The Caption property: {0}", test.Caption)
End Sub
Private Function GetVisibility(m As MethodInfo) As String
Dim visibility As String = ""
If m.IsPublic Then
Return "Public"
ElseIf m.IsPrivate Then
Return "Private"
Else
If m.IsFamily Then
visibility = "Protected "
ElseIf m.IsAssembly Then
visibility += "Assembly"
End If
End If
Return visibility
End Function
End Module
' The example displays the following output:
' The Caption property: A Default caption
' ----------
' There are 2 accessors.
' Accessor #1:
' Name: get_Caption
' Visibility: Public
' Property Type: Getter
' Property Value: A Default caption
' Accessor #2:
' Name: set_Caption
' Visibility: Public
' Property Type: Setter
' Setting the property value.
' ----------
' The Caption property: The Modified Caption
Keterangan
Untuk memanggil GetAccessors metode :
Type Dapatkan objek yang mewakili kelas .
Type Dari objek , dapatkan PropertyInfo objek .
Dari PropertyInfo objek , panggil GetAccessors metode .