Direttiva x:FactoryMethod
Specifica un metodo diverso da un costruttore che un processore XAML deve usare per inizializzare un oggetto dopo la risoluzione del tipo di supporto.
Utilizzo degli attributi XAML, nessun argomento x:Arguments
<object x:FactoryMethod="methodname"...>
...
</object>
Utilizzo attributi XAML, x:Arguments come elementi
<object x:FactoryMethod="methodname"...>
<x:Arguments>
oneOrMoreObjectElements
</x:Arguments>
</object>
Valori XAML
Valore | Descrizione |
---|---|
methodname |
Nome del metodo stringa di un metodo chiamato dai processori XAML per inizializzare l'istanza specificata come object . Vedere la sezione Osservazioni. |
oneOrMoreObjectElements |
Uno o più elementi oggetto per gli oggetti che specificano i parametri del metodo factory. L'ordine è significativo; indica l'ordine in cui gli argomenti devono essere passati al metodo factory. |
Osservazioni
Se methodname
è un metodo di istanza, non può essere qualificato.
I metodi statici come metodi factory sono supportati. Se methodname
è un metodo statico, methodname
viene fornito come combinazione di typeName.methodName
, in cui typeName
denomina la classe che definisce il metodo factory statico.
typeName
può essere qualificato con prefisso se si fa riferimento a un tipo in un xmlns mappato.
typeName
può essere un tipo diverso da typeof(object)
.
Il metodo factory deve essere un metodo pubblico dichiarato del tipo che esegue il backup dell'elemento oggetto pertinente.
Il metodo factory deve restituire un'istanza assegnabile all'oggetto pertinente. I metodi factory non devono mai restituire null.
x:Arguments
opera su un principio di corrispondenza ottimale per le firme dei metodi factory. La corrispondenza valuta prima il conteggio dei parametri. Se sono presenti più corrispondenze possibili per un conteggio dei parametri, il tipo di parametro viene quindi valutato e viene determinata la corrispondenza migliore. Se dopo questa fase di valutazione c'è ancora ambiguità, il comportamento del processore XAML non è definito.
L'utilizzo dell'elemento x:FactoryMethod
non è l'utilizzo degli elementi di proprietà nel senso tipico, perché il markup della direttiva non fa riferimento al tipo dell'elemento oggetto contenitore. È previsto che l'utilizzo degli elementi sia meno comune rispetto all'utilizzo degli attributi.
x:Arguments
(utilizzo di attributi o elementi) può essere usato insieme all'utilizzo degli elementi x:FactoryMethod
, ma questo non è illustrato in modo specifico nelle sezioni Utilizzo.
x:FactoryMethod
come elemento deve precedere qualsiasi altro elemento della proprietà, deve precedere qualsiasi x:Arguments
fornito anche come elementi e deve precedere qualsiasi contenuto/testo interno/inizializzazione.
Vedere anche
.NET Desktop feedback