x:FieldModifier (Directiva)
Modifica el comportamiento de la compilación de XAML para que los campos para referencias a objetos con nombre se definan con el acceso TypeAttributes.Public en lugar del comportamiento TypeAttributes.NotPublic predeterminado.
Uso de atributos XAML
<object x:FieldModifier="Public".../>
Valores XAML
Value | Descripción |
---|---|
Pública | La cadena exacta que se pasa para especificar TypeAttributes.Public en lugar de TypeAttributes.NotPublic varía en función del lenguaje de programación subyacente que se use. Vea la sección Comentarios. |
Dependencias
Si una producción XAML usa x:FieldModifier
en cualquier lugar, el elemento raíz de esa producción XAML debe declarar una directiva x:Class.
Comentarios
x:FieldModifier
no es relevante para declarar el nivel de acceso general de una clase o sus miembros. Solo es relevante para el comportamiento de procesamiento XAML cuando se procesa un objeto XAML determinado que forma parte de una producción XAML y se convierte en un objeto posiblemente accesible en el gráfico de objetos de una aplicación. De forma predeterminada, la referencia de campo para este objeto se mantiene privada, lo que impide que los consumidores de control modifiquen el gráfico de objetos directamente. En su lugar, se espera que los consumidores de control modifiquen el gráfico de objetos mediante patrones estándar habilitados por modelos de programación, como con la obtención de la raíz del diseño, las colecciones de elementos secundarios, las propiedades públicas dedicadas, etc.
El valor del atributo x:FieldModifier
varía según el lenguaje de programación y su propósito puede variar en marcos específicos. La cadena que se va a usar depende de cómo implementa cada lenguaje los CodeDomProvider y los convertidores de tipos que devuelve para definir los significados de TypeAttributes.Public y TypeAttributes.NotPublic, y si ese lenguaje distingue entre mayúsculas y minúsculas.
Para C#, la cadena que se va a pasar para designar TypeAttributes.Public es
public
.En Microsoft Visual Basic .NET la cadena que se pasa para designar TypeAttributes.Public es
Public
.En C++/CLI no existen actualmente destinos para XAML; por lo tanto, no está definida la cadena que se va a pasar.
También puede especificar TypeAttributes.NotPublic (internal
en C#, Friend
en Visual Basic), pero especificar TypeAttributes.NotPublic es inusual porque NotPublic
, ya que el comportamiento ya es el valor predeterminado.
TypeAttributes.NotPublic es el comportamiento predeterminado porque es poco frecuente que el código fuera del ensamblado que ha compilado el XAML necesite acceso a un elemento creado por XAML. La arquitectura de seguridad de WPF junto con el comportamiento de compilación XAML no declarará campos que almacenan instancias de elemento como públicas, a menos que se establezca el x:FieldModifier
específicamente para permitir acceso público.
x:FieldModifier
solo es relevante para elementos con una directiva x:Name, ya que ese nombre se usa para hacer referencia al campo una vez que se hace público.
De forma predeterminada, la clase parcial para el elemento raíz es pública; sin embargo, puede hacerla no pública mediante la directiva x:ClassModifier. La directiva x:ClassModifier también afecta al nivel de acceso de la instancia de la clase de elemento raíz. Puede colocar x:Name
y x:FieldModifier
en el elemento raíz, pero esto solo hace una copia pública de campo del elemento raíz, con el nivel de acceso de clase de elemento raíz verdadero controlado todavía por la directiva x:ClassModifier.
Vea también
.NET Desktop feedback