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