PropertyInfo.CanWrite Propiedad

Definición

Obtiene un valor que indica si se puede escribir en la propiedad.

public abstract bool CanWrite { get; }

Valor de propiedad

Es true si se puede escribir en esta propiedad; en caso contrario, es false.

Implementaciones

Ejemplos

En el ejemplo siguiente se definen dos propiedades. La primera propiedad es grabable y la CanWrite propiedad es true. La segunda propiedad no se puede escribir (no hay ningún set descriptor de acceso) y la CanWrite propiedad es 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;
    }
}

Comentarios

CanWrite devuelve true si la propiedad tiene un set descriptor de acceso, incluso si el descriptor de acceso es private, internal (o en Visual Basic) o Friendprotected. Si la propiedad no tiene un set descriptor de acceso, el método devuelve false.

Para obtener el valor de la CanWrite propiedad :

  1. Obtenga el Type objeto del tipo que incluye la propiedad .

  2. Type.GetProperty Llame a para obtener el PropertyInfo objeto que representa la propiedad .

  3. Recupere el valor de la CanWrite propiedad .

Se aplica a