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 suporte.
Uso de atributo XAML, sem x:Arguments
<object x:FactoryMethod="methodname"...>
...
</object>
Uso de atributo XAML, x:Argumentos como elemento(s)
<object x:FactoryMethod="methodname"...>
<x:Arguments>
oneOrMoreObjectElements
</x:Arguments>
</object>
Valores XAML
Valor | Descrição |
---|---|
methodname |
O nome do método string de um método que os processadores XAML chamam para inicializar a instância especificada como object . Consulte Observações. |
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 em que os argumentos devem ser passados para o método de fábrica. |
Comentários
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
é um método estático, é fornecido como uma typeName.methodName
combinação, methodname
onde typeName
nomeia a classe que define o método de fábrica estático. typeName
pode ser qualificado por prefixo se se referir a um tipo em um xmlns mapeado. typeName
pode ser um tipo diferente do typeof(object)
.
O método factory deve ser um método público declarado do tipo que faz backup do elemento de objeto relevante.
O método factory deve retornar uma instância que é atribuível ao objeto relevante. Os métodos de fábrica nunca devem retornar null.
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 x:FactoryMethod
uso do elemento não é o uso do elemento de propriedade no sentido típico, porque a marcação de diretiva não faz referência ao tipo do elemento objeto que contém. Espera-se que o uso de elementos seja menos comum do que o uso de atributos. x:Arguments
(uso de atributo ou elemento) pode ser usado junto com x:FactoryMethod
o uso de elementos, 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 elemento também fornecido como e deve preceder qualquer x:Arguments
conteúdo/texto interno/texto de inicialização.
Confira também
.NET Desktop feedback