Compartir a través de


x:FieldModifier (Directiva)

Modifica el comportamiento de compilación XAML para que los campos de las referencias de objeto con nombre se definan con TypeAttributes.Public acceso en lugar del comportamiento predeterminado de TypeAttributes.NotPublic.

Uso de atributos XAML

<object x:FieldModifier="Public".../>

Valores XAML

Valor Descripción
pública La cadena exacta que se pasa para especificar TypeAttributes.Public frente a TypeAttributes.NotPublic varía, en función del lenguaje de programación subyacente que se usa. Vea comentarios.

Dependencias

Si una producción XAML usa x:FieldModifier en cualquier lugar, el elemento raíz de esa producción XAML debe declarar un directiva x:Class.

Observaciones

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 que es potencialmente 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 obtener 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 finalidad puede variar en marcos específicos. La cadena que se va a usar depende de cómo implementa cada idioma sus CodeDomProvider y los convertidores de tipos que devuelve para definir los significados de TypeAttributes.Public y TypeAttributes.NotPublic, y si ese idioma distingue mayúsculas de minúsculas.

  • Para C#, la cadena que se va a pasar para designar TypeAttributes.Public es public.

  • Para .NET de Microsoft Visual Basic, la cadena que se va a pasar para designar TypeAttributes.Public es Public.

  • En el caso de C++/CLI, no existen destinos para XAML actualmente; por lo tanto, la cadena que se va a pasar no está definida.

También puede especificar TypeAttributes.NotPublic (internal en C#, Friend en Visual Basic), pero especificar TypeAttributes.NotPublic es inusual porque NotPublic como comportamiento ya es el valor predeterminado.

TypeAttributes.NotPublic es el comportamiento predeterminado porque es poco frecuente que el código fuera del ensamblado que compiló el XAML necesita 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 establezca específicamente el x:FieldModifier para permitir el acceso público.

x:FieldModifier solo es relevante para los elementos con una directiva x:Name porque ese nombre se usa para hacer referencia al campo después de que sea público.

De forma predeterminada, la clase parcial del elemento raíz es pública; sin embargo, puede convertirlo en nopublic mediante el directiva x:ClassModifier. El directiva x:ClassModifier también afecta al nivel de acceso de la instancia de la clase de elemento raíz. Puede colocar tanto x:Name como x:FieldModifier en el elemento raíz, pero esto solo hace una copia de campo público del elemento raíz, con el nivel de acceso de clase de elemento raíz verdadero controlado por directiva x:ClassModifier.

Consulte también