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
.NET Desktop feedback