PropertyInfo.CanRead Property   
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Gets a value indicating whether the property can be read.
public:
 abstract property bool CanRead { bool get(); };public abstract bool CanRead { get; }member this.CanRead : boolPublic MustOverride ReadOnly Property CanRead As BooleanProperty Value
true if this property can be read; otherwise, false.
Implements
Examples
The following example defines two properties. The first property is readable and the CanRead property is true. The second property is not readable (there is no get accessor), and the CanRead property is false.
using System;
using System.Reflection;
// Define one readable property and one not readable.
public class Mypropertya
{
    private string caption = "A Default caption";
    public string Caption
    {
        get{return caption;}
        set {if(caption!=value) {caption = value;}
        }
    }
}
public class Mypropertyb
{
    private string caption = "B Default caption";
    public string Caption
    {
        set{if(caption!=value) {caption = value;}
        }
    }
}
class Mypropertyinfo
{
    public static int Main()
    {
        Console.WriteLine("\nReflection.PropertyInfo");
        // Define two properties.
        Mypropertya Mypropertya = new Mypropertya();
        Mypropertyb Mypropertyb = new Mypropertyb();
        Console.Write("\nMypropertya.Caption = " + Mypropertya.Caption);
        // Mypropertyb.Caption cannot be read, because
        // there is no get accessor.
        // Get the type and PropertyInfo.
        Type MyTypea = Type.GetType("Mypropertya");
        PropertyInfo Mypropertyinfoa = MyTypea.GetProperty("Caption");
        Type MyTypeb = Type.GetType("Mypropertyb");
        PropertyInfo Mypropertyinfob = MyTypeb.GetProperty("Caption");
        // Get and display the CanRead property.
        Console.Write("\nCanRead a - " + Mypropertyinfoa.CanRead);
        Console.Write("\nCanRead b - " + Mypropertyinfob.CanRead);
        return 0;
    }
}
Imports System.Reflection
' Define one readable property and one not readable.
Public Class Mypropertya
    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
Public Class Mypropertyb
    Private myCaption As String = "B Default caption"
    Public WriteOnly Property Caption() As String
        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")
        ' Define two properties.
        Dim Mypropertya As New Mypropertya()
        Dim Mypropertyb As New Mypropertyb()
        Console.Write(ControlChars.Cr & "Mypropertya.Caption = " & _
           Mypropertya.Caption)
        ' Mypropertyb.Caption cannot be read because
        ' there is no get accessor.
        ' Get the type and PropertyInfo.
        Dim MyTypea As Type = Type.GetType("Mypropertya")
        Dim Mypropertyinfoa As PropertyInfo = MyTypea.GetProperty("Caption")
        Dim MyTypeb As Type = Type.GetType("Mypropertyb")
        Dim Mypropertyinfob As PropertyInfo = MyTypeb.GetProperty("Caption")
        ' Get and display the CanRead property.
        Console.Write(ControlChars.CrLf & "CanRead a - " & _
           Mypropertyinfoa.CanRead)
        Console.Write(ControlChars.CrLf & "CanRead b - " & _
           Mypropertyinfob.CanRead)
        Return 0
    End Function
End Class
Remarks
If the property does not have a get accessor, it cannot be read.
To get the CanRead property, first get the class Type. From the Type, get the PropertyInfo. From the PropertyInfo, get the CanRead value.