Compartilhar via


Diretiva x:FactoryMethod

Especifica um método diferente de um construtor que um processador XAML deve usar para inicializar um objeto depois de resolver seu tipo de backup.

Uso do atributo XAML, sem x:Arguments

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

Uso do atributo XAML, x:Arguments as Element(s)

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

Valores XAML

Valor Descrição
methodname O nome do método de cadeia de caracteres de um método que os processadores XAML chamam para inicializar a instância especificada como object. Consulte Comentários.
oneOrMoreObjectElements Um ou mais elementos de objeto para objetos que especificam parâmetros de método de fábrica. A ordem é significativa; significa a ordem na qual os argumentos devem ser passados para o método de fábrica.

Observações

Se methodname for um método de instância, ele não poderá ser qualificado.

Há suporte para métodos estáticos como métodos de fábrica. Se methodname for um método estático, methodname será fornecido como uma combinação de typeName.methodName, em que typeName nomeia a classe que define o método de fábrica estático. typeName pode ser qualificado por prefixo se estiver se referindo a um tipo em um xmlns mapeado. typeName pode ser um tipo diferente do typeof(object).

O método de fábrica deve ser um método público declarado do tipo que apoia o elemento de objeto relevante.

O método de fábrica deve retornar uma instância atribuível ao objeto relevante. Os métodos de fábrica nunca devem retornar nulo.

x:Arguments opera em um princípio de melhor correspondência para assinaturas de métodos de fábrica. A correspondência avalia a contagem de parâmetros primeiro. Se houver mais de uma correspondência possível para uma contagem de parâmetros, o tipo de parâmetro será avaliado e a melhor correspondência será determinada. Se ainda houver ambiguidade após essa fase de avaliação, o comportamento do processador XAML será indefinido.

O uso do elemento x:FactoryMethod não é o uso de elemento de propriedade no sentido típico, pois a marcação de diretiva não faz referência ao tipo do elemento de objeto que contém. Espera-se que o uso do elemento seja menos comum do que o uso de atributo. x:Arguments (uso de elemento ou atributo) pode ser usado juntamente com x:FactoryMethod uso de elemento, mas isso não é mostrado especificamente nas seções Uso.

x:FactoryMethod como um elemento deve preceder quaisquer outros elementos de propriedade, deve preceder qualquer x:Arguments também fornecido como elementos e deve preceder qualquer texto de conteúdo/texto interno/inicialização.

Consulte também

  • de diretiva x:Arguments