PropertyInfo.CanWrite 属性   
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取一个值,该值指示此属性是否可写。
public:
 abstract property bool CanWrite { bool get(); };public abstract bool CanWrite { get; }member this.CanWrite : boolPublic MustOverride ReadOnly Property CanWrite As Boolean属性值
如果此属性可写,则为 true;否则为 false。
实现
示例
以下示例定义两个属性。 第一个属性是可写的, CanWrite 属性是 true。  (没有 set 访问器) ,并且 CanWrite 属性为 ,则第二个 false属性不可写。
using System;
using System.Reflection;
 // Define one writable property and one not writable.
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
    {
        get{return caption;}
    }
}
class Mypropertyinfo
{
    public static int Main()
    {
        Console.WriteLine("\nReflection.PropertyInfo");
        // Define two properties.
        Mypropertya Mypropertya = new Mypropertya();
        Mypropertyb Mypropertyb = new Mypropertyb();
        // Read and display the property.
        Console.Write("\nMypropertya.Caption = " + Mypropertya.Caption);
        Console.Write("\nMypropertyb.Caption = " + Mypropertyb.Caption);
        // Write to the property.
        Mypropertya.Caption = "A- No Change";
        // Mypropertyb.Caption cannot be written to because
        // there is no set accessor.
        // Read and display the property.
        Console.Write("\nMypropertya.Caption = " + Mypropertya.Caption);
        Console.Write ("\nMypropertyb.Caption = " + Mypropertyb.Caption);
        // 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 CanWrite property.
        Console.Write("\nCanWrite a - " + Mypropertyinfoa.CanWrite);
        Console.Write("\nCanWrite b - " + Mypropertyinfob.CanWrite);
        return 0;
    }
}
Imports System.Reflection
' Define one writable property and one not writable.
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 ReadOnly Property Caption() As String
        Get
            Return myCaption
        End Get
    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()
        ' Read and display the property.
        Console.Write(ControlChars.CrLf & "Mypropertya.Caption = " & _
           Mypropertya.Caption)
        Console.Write(ControlChars.CrLf & "Mypropertyb.Caption = " & _
           Mypropertyb.Caption)
        ' Write to the property.
        Mypropertya.Caption = "A- No Change"
        ' Mypropertyb.Caption cannot be written to because
        ' there is no set accessor.
        ' Read and display the property.
        Console.Write(ControlChars.CrLf & "Mypropertya.Caption = " & _
           Mypropertya.Caption)
        Console.Write(ControlChars.CrLf & "Mypropertyb.Caption = " & _
           Mypropertyb.Caption)
        ' 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 CanWrite property.
        Console.Write(ControlChars.CrLf & "CanWrite a - " & _
           Mypropertyinfoa.CanWrite)
        Console.Write(ControlChars.CrLf & "CanWrite b - " & _
           Mypropertyinfob.CanWrite)
        Return 0
    End Function
End Class
注解
              CanWrite
              true如果 属性具有set访问器,则返回 ,即使访问器为 private、 internal (Visual Friend Basic) 或 protected。   如果该属性没有 set 访问器,则该方法返回 false。
若要获取 属性的值,请执行以下命令 CanWrite :
- Type获取包含 属性的类型的对象。 
- Type.GetProperty调用 以获取PropertyInfo表示 属性的对象。 
- 检索 属性的值 CanWrite 。