x:FactoryMethod, dyrektywa
Określa metodę inną niż konstruktor, którego procesor XAML powinien użyć do zainicjowania obiektu po rozpoznaniu jego typu kopii zapasowej.
Użycie atrybutów XAML, brak argumentów x:Argumenty
<object x:FactoryMethod="methodname"...>
...
</object>
Użycie atrybutu XAML, x:Argumenty jako elementy
<object x:FactoryMethod="methodname"...>
<x:Arguments>
oneOrMoreObjectElements
</x:Arguments>
</object>
Wartości XAML
Wartość | Opis |
---|---|
methodname |
Nazwa metody ciągu metody wywoływanej przez procesory XAML w celu zainicjowania wystąpienia określonego jako object . Zobacz uwagi. |
oneOrMoreObjectElements |
Co najmniej jeden element obiektu dla obiektów określających parametry metody fabryki. Kolejność jest znacząca; oznacza kolejność przekazywania argumentów do metody factory. |
Uwagi
Jeśli methodname
jest metodą wystąpienia, nie można jej zakwalifikować.
Metody statyczne jako metody fabryczne są obsługiwane. Jeśli methodname
jest metodą statyczną, methodname
jest dostarczana jako kombinacja typeName.methodName
, gdzie typeName
nazwy klasy definiującej metodę fabryki statycznej.
typeName
można zakwalifikować prefiks, jeśli odwołuje się do typu w mapowanych xmlnach.
typeName
może być innym typem niż typeof(object)
.
Metoda fabryki musi być zadeklarowaną publiczną metodą typu, który zwraca odpowiedni element obiektu.
Metoda fabryki musi zwrócić wystąpienie, które można przypisać do odpowiedniego obiektu. Metody fabryki nigdy nie powinny zwracać wartości null.
x:Arguments
działa na zasadzie najlepszego dopasowania do podpisów metod fabrycznych. Dopasowanie oblicza najpierw liczbę parametrów. Jeśli istnieje więcej niż jedno możliwe dopasowanie dla liczby parametrów, typ parametru jest obliczany, a najlepsze dopasowanie jest określane. Jeśli po tej fazie oceny nadal występuje niejednoznaczność, zachowanie procesora XAML jest niezdefiniowane.
Użycie elementu x:FactoryMethod
nie jest użyciem elementu właściwości w typowym sensie, ponieważ znacznik dyrektywy nie odwołuje się do typu elementu zawierającego obiekt. Oczekuje się, że użycie elementów jest mniej powszechne niż użycie atrybutów.
x:Arguments
(użycie atrybutu lub elementu) może być używane wraz z użyciem elementu x:FactoryMethod
, ale nie jest to specjalnie pokazane w sekcjach Użycie.
x:FactoryMethod
jako element musi poprzedzać wszelkie inne elementy właściwości, musi poprzedzać wszystkie x:Arguments
również podane jako elementy i musi poprzedzać dowolną zawartość/tekst wewnętrzny/tekst inicjowania.
Zobacz też
.NET Desktop feedback