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 podawana 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 zamapowanych 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 x:FactoryMethod
elementu 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 x:FactoryMethod
użyciem elementów, ale nie jest to specjalnie pokazane w sekcjach Użycie.
x:FactoryMethod
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
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla