x:FactoryMethod, directive

Spécifie une méthode autre qu’un constructeur qu’un processeur XAML doit utiliser pour initialiser un objet après avoir résolu son type de stockage.

Utilisation des attributs XAML, sans x :Arguments

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

Utilisation des attributs XAML, x :Arguments en tant qu’élément(s)

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

Valeurs XAML

Valeur Description
methodname Nom de la méthode de chaîne d’une méthode que les processeurs XAML appellent pour initialiser l’instance spécifiée en tant que object. Consultez la section Notes.
oneOrMoreObjectElements Un ou plusieurs éléments d’objet pour les objets qui spécifient des paramètres de méthode de fabrique. L’ordre est important ; cela signifie l’ordre dans lequel les arguments doivent être passés à la méthode de fabrique.

Notes

S’il methodname s’agit d’une méthode d’instance, elle ne peut pas être qualifiée.

Les méthodes statiques en tant que méthodes de fabrique sont prises en charge. S’il methodname s’agit d’une typeName.methodName méthode statique, methodname est fournie en tant que combinaison, où typeName nomme la classe qui définit la méthode de fabrique statique. typeName peut être qualifié de préfixe si vous faites référence à un type dans un xmlns mappé. typeName peut être un type différent de typeof(object).

La méthode de fabrique doit être une méthode publique déclarée du type qui sauvegarde l’élément objet approprié.

La méthode de fabrique doit retourner une instance qui est assignable à l’objet approprié. Les méthodes de fabrique ne doivent jamais retourner null.

x:Arguments fonctionne sur un principe de correspondance optimale pour les signatures de méthodes d’usine. La correspondance évalue d’abord le nombre de paramètres. S’il existe plusieurs correspondances possibles pour un nombre de paramètres, le type de paramètre est évalué et la meilleure correspondance est déterminée. S’il existe toujours une ambiguïté après cette phase d’évaluation, le comportement du processeur XAML n’est pas défini.

L’utilisation x:FactoryMethod de l’élément n’est pas l’utilisation des éléments de propriété dans le sens classique, car le balisage de directive ne référence pas le type de l’élément objet contenant. On s’attend à ce que l’utilisation des éléments soit moins courante que l’utilisation des attributs. x:Arguments (l’utilisation de l’attribut ou de l’élément) peut être utilisée avec x:FactoryMethod l’utilisation des éléments, mais elle n’est pas spécifiquement affichée dans les sections Utilisation.

x:FactoryMethod en tant qu’élément doit précéder tout autre élément de propriété, doit précéder tout x:Arguments élément également fourni en tant qu’éléments, et doit précéder tout texte de contenu/texte interne/initialisation.

Voir aussi