PropertyInfo.GetSetMethod Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает элемент MethodInfo, предоставляющий метод доступа set
для этого свойства.
Перегрузки
GetSetMethod(Boolean) |
При переопределении в производном классе возвращает для этого свойства метод доступа |
GetSetMethod() |
Возвращает открытый метод доступа |
GetSetMethod(Boolean)
- Исходный код:
- PropertyInfo.cs
- Исходный код:
- PropertyInfo.cs
- Исходный код:
- PropertyInfo.cs
При переопределении в производном классе возвращает для этого свойства метод доступа set
.
public:
abstract System::Reflection::MethodInfo ^ GetSetMethod(bool nonPublic);
public abstract System.Reflection.MethodInfo? GetSetMethod (bool nonPublic);
public abstract System.Reflection.MethodInfo GetSetMethod (bool nonPublic);
abstract member GetSetMethod : bool -> System.Reflection.MethodInfo
Public MustOverride Function GetSetMethod (nonPublic As Boolean) As MethodInfo
Параметры
- nonPublic
- Boolean
Указывает, должен ли возвращаться метод доступа, если он не является открытым. Значение true
, если метод должен быть возвращен; в противном случае — значение false
.
Возвращаемое значение
Метод свойства Set
или null
, как показано в следующей таблице.
Значение | Условие |
---|---|
Метод Set для этого свойства.
| Метод доступа set является общедоступным, ИЛИ nonPublic является true , а метод доступа set не публичный.
|
null | nonPublic является true , но свойство доступно только для чтения, ИЛИ nonPublic является false , а метод доступа set не публичный, ИЛИ нет метода доступа set .
|
Реализации
Исключения
Запрошенный метод не является открытым, и вызывающая сторона не имеет ReflectionPermission для отражения в этом методе.
Примеры
В следующем примере показан метод set
доступа для указанного свойства.
using namespace System;
using namespace System::Reflection;
// Define a property.
public ref class Myproperty
{
private:
String^ caption;
public:
property String^ Caption
{
String^ get()
{
return caption;
}
void set( String^ value )
{
if ( caption != value )
{
caption = value;
}
}
}
};
int main()
{
Console::WriteLine( "\nReflection.PropertyInfo" );
// Get the type and PropertyInfo for two separate properties.
Type^ MyTypea = Type::GetType( "Myproperty" );
PropertyInfo^ Mypropertyinfoa = MyTypea->GetProperty( "Caption" );
Type^ MyTypeb = Type::GetType( "System.Text.StringBuilder" );
PropertyInfo^ Mypropertyinfob = MyTypeb->GetProperty( "Length" );
// Get and display the GetSetMethod method for each property.
MethodInfo^ Mygetmethodinfoa = Mypropertyinfoa->GetSetMethod();
Console::Write( "\nSetAccessor for {0} returns a {1}", Mypropertyinfoa->Name, Mygetmethodinfoa->ReturnType );
MethodInfo^ Mygetmethodinfob = Mypropertyinfob->GetSetMethod();
Console::Write( "\nSetAccessor for {0} returns a {1}", Mypropertyinfob->Name, Mygetmethodinfob->ReturnType );
// Display the GetSetMethod without using the MethodInfo.
Console::Write( "\n\n{0}.{1} GetSetMethod - {2}", MyTypea->FullName, Mypropertyinfoa->Name, Mypropertyinfoa->GetSetMethod() );
Console::Write( "\n{0}.{1} GetSetMethod - {2}", MyTypeb->FullName, Mypropertyinfob->Name, Mypropertyinfob->GetSetMethod() );
return 0;
}
using System;
using System.Reflection;
// Define a property.
public class Myproperty
{
private string caption = "A Default caption";
public string Caption
{
get{return caption;}
set {if(caption!=value) {caption = value;}
}
}
}
class Mypropertyinfo
{
public static int Main()
{
Console.WriteLine ("\nReflection.PropertyInfo");
// Get the type and PropertyInfo for two separate properties.
Type MyTypea = Type.GetType("Myproperty");
PropertyInfo Mypropertyinfoa = MyTypea.GetProperty("Caption");
Type MyTypeb = Type.GetType("System.Text.StringBuilder");
PropertyInfo Mypropertyinfob = MyTypeb.GetProperty("Length");
// Get and display the GetSetMethod method for each property.
MethodInfo Mygetmethodinfoa = Mypropertyinfoa.GetSetMethod();
Console.Write ("\nSetAccessor for " + Mypropertyinfoa.Name
+ " returns a " + Mygetmethodinfoa.ReturnType);
MethodInfo Mygetmethodinfob = Mypropertyinfob.GetSetMethod();
Console.Write ("\nSetAccessor for " + Mypropertyinfob.Name
+ " returns a " + Mygetmethodinfob.ReturnType);
// Display the GetSetMethod without using the MethodInfo.
Console.Write ("\n\n" + MyTypea.FullName + "."
+ Mypropertyinfoa.Name + " GetSetMethod - "
+ Mypropertyinfoa.GetSetMethod());
Console.Write ("\n" + MyTypeb.FullName + "."
+ Mypropertyinfob.Name + " GetSetMethod - "
+ Mypropertyinfob.GetSetMethod());
return 0;
}
}
Imports System.Reflection
' Define a property.
Public Class Myproperty
Private myCaption As String = "A Default caption"
Public Property Caption() As String
Get
Return myCaption
End Get
Set(ByVal Value As String)
If myCaption <> value Then
myCaption = value
End If
End Set
End Property
End Class
Class Mypropertyinfo
Public Shared Function Main() As Integer
Console.WriteLine(ControlChars.CrLf & "Reflection.PropertyInfo")
' Get the type and PropertyInfo for two separate properties.
Dim MyTypea As Type = Type.GetType("Myproperty")
Dim Mypropertyinfoa As PropertyInfo = MyTypea.GetProperty("Caption")
Dim MyTypeb As Type = Type.GetType("System.Text.StringBuilder")
Dim Mypropertyinfob As PropertyInfo = MyTypeb.GetProperty("Length")
' Get and display the GetSetMethod method for each property.
Dim Mygetmethodinfoa As MethodInfo = Mypropertyinfoa.GetSetMethod()
Console.WriteLine("SetAccessor for " & Mypropertyinfoa.Name & _
" returns a " & Mygetmethodinfoa.ReturnType.ToString())
Dim Mygetmethodinfob As MethodInfo = Mypropertyinfob.GetSetMethod()
Console.WriteLine("SetAccessor for " & Mypropertyinfob.Name & _
" returns a " & Mygetmethodinfob.ReturnType.ToString())
' Display the GetSetMethod without using the MethodInfo.
Console.WriteLine(MyTypea.FullName & "." & Mypropertyinfoa.Name & _
" GetSetMethod - " & Mypropertyinfoa.GetSetMethod().ToString())
Console.WriteLine(MyTypeb.FullName & "." & Mypropertyinfob.Name & _
" GetSetMethod - " & Mypropertyinfob.GetSetMethod().ToString())
Return 0
End Function
End Class
Комментарии
Чтобы использовать GetSetMethod
метод , сначала получите класс Type
. Type
Из получите PropertyInfo. В используйте PropertyInfo
GetSetMethod
метод .
Применяется к
GetSetMethod()
- Исходный код:
- PropertyInfo.cs
- Исходный код:
- PropertyInfo.cs
- Исходный код:
- PropertyInfo.cs
Возвращает открытый метод доступа set
для данного свойства.
public:
System::Reflection::MethodInfo ^ GetSetMethod();
public:
virtual System::Reflection::MethodInfo ^ GetSetMethod();
public System.Reflection.MethodInfo? GetSetMethod ();
public System.Reflection.MethodInfo GetSetMethod ();
member this.GetSetMethod : unit -> System.Reflection.MethodInfo
abstract member GetSetMethod : unit -> System.Reflection.MethodInfo
override this.GetSetMethod : unit -> System.Reflection.MethodInfo
Public Function GetSetMethod () As MethodInfo
Возвращаемое значение
Объект MethodInfo
, представляющий метод Set
для этого свойства, если метод доступа set
является открытым, или значение null
, если метод set
не является открытым.
Реализации
Комментарии
Это удобный метод, предоставляющий реализацию абстрактного GetSetMethod
метода с параметром nonPublic
, равным false
.
Чтобы использовать GetSetMethod
метод , сначала получите класс Type
. Type
Из получите PropertyInfo. В используйте PropertyInfo
GetSetMethod
метод .