Compartir a través de


x:FactoryMethod (Directiva)

Especifica un método distinto de un constructor que un procesador XAML debe usar para inicializar un objeto después de resolver su tipo de respaldo.

Uso de atributos XAML, sin argumentos x:

<object x:FactoryMethod="methodname"...>  
  ...  
</object>  

Uso de atributos XAML, x:Arguments como elementos

<object x:FactoryMethod="methodname"...>  
  <x:Arguments>  
    oneOrMoreObjectElements  
  </x:Arguments>  
</object>  

Valores XAML

Valor Descripción
methodname Nombre del método de cadena de un método al que llaman los procesadores XAML para inicializar la instancia especificada como object. Vea comentarios.
oneOrMoreObjectElements Uno o varios elementos de objeto para objetos que especifican parámetros de método de fábrica. El orden es significativo; significa el orden en el que se deben pasar los argumentos al método factory.

Observaciones

Si methodname es un método de instancia, no se puede calificar.

Se admiten métodos estáticos como métodos de fábrica. Si methodname es un método estático, methodname se proporciona como una combinación de typeName.methodName, donde typeName asigna un nombre a la clase que define el método de generador estático. typeName puede calificarse como prefijo si hace referencia a un tipo en xmlns asignados. typeName puede ser un tipo diferente al typeof(object).

El método factory debe ser un método público declarado del tipo que respalda el elemento de objeto correspondiente.

El método factory debe devolver una instancia que se pueda asignar al objeto correspondiente. Los métodos factory nunca deben devolver null.

x:Arguments funciona con un principio de mejor coincidencia para firmas de métodos de fábrica. La coincidencia evalúa primero el recuento de parámetros. Si hay más de una coincidencia posible para un recuento de parámetros, se evalúa el tipo de parámetro y se determina la mejor coincidencia. Si todavía hay ambigüedad después de esta fase de evaluación, el comportamiento del procesador XAML no está definido.

El uso del elemento x:FactoryMethod no es el uso de elementos de propiedad en el sentido típico, ya que el marcado de directiva no hace referencia al tipo del elemento de objeto contenedor. Se espera que el uso de elementos sea menos común que el uso de atributos. x:Arguments (uso de atributos o elementos) se puede usar junto con x:FactoryMethod uso de elementos, pero esto no se muestra específicamente en las secciones Uso.

x:FactoryMethod como elemento debe preceder a cualquier otro elemento de propiedad, debe preceder a cualquier x:Arguments también proporcionado como elementos y debe preceder a cualquier texto de contenido, texto interno o inicialización.

Consulte también