MarkupExtension.ProvideValue(IServiceProvider) Yöntem

Tanım

Türetilmiş bir sınıfta uygulandığında, bu işaretleme uzantısı için hedef özelliğin değeri olarak sağlanan bir nesnesi döndürür.

public:
 abstract System::Object ^ ProvideValue(IServiceProvider ^ serviceProvider);
public abstract object ProvideValue (IServiceProvider serviceProvider);
abstract member ProvideValue : IServiceProvider -> obj
Public MustOverride Function ProvideValue (serviceProvider As IServiceProvider) As Object

Parametreler

serviceProvider
IServiceProvider

Kar payı uzantısı için hizmet sağlayabilen bir hizmet sağlayıcısı yardımcısı.

Döndürülenler

Uzantının uygulandığı özellikte ayarlanacağı nesne değeri.

Açıklamalar

Bir XAML işlemcisi işaretleme uzantısı olan bir tür düğümünü ve üye değerini işlediğinde, bu işaretleme uzantısının yöntemini çağırır ProvideValue ve sonucu nesne grafı veya serileştirme akışına yazar. XAML nesne yazıcısı, hizmet bağlamını bu tür her uygulamaya parametresi aracılığıyla serviceProvider geçirir.

Özel işaretleme uzantısında uygulama ProvideValue hakkında daha fazla bilgi için "Uygulayıcılara Notlar" bölümüne bakın.

WPF Kullanım Notları

Önemli

İşaretlemeyi ayarlama işlemleriyle belirli etkileşimleri olan WPF sınıfları, .NET Framework 4 uygulaması için bağımlı IReceiveMarkupExtension olmamalıdır. Bunun yerine -attributed callbacks kullanın XamlSetMarkupExtensionAttribute.

Uygulayanlara Notlar

Varsayılan hizmet sağlayıcısı tarafından döndürülen ve genellikle özel veya mevcut MarkupExtension bir uygulama için kullanılabilen yaygın hizmetler aşağıdaki birincil hizmetleri içerir.

Büyük olasılıkla, uygulamaları ProvideValue(IServiceProvider) parametresini serviceProvider yoksayabilir. Bu, değer döndürmek için bağlam gerektirildiği bazı temel senaryolarda kullanılabilir.

Tipik kullanımda, .NET Framework XAML Hizmetleri ve uygulanan XAML nesne yazıcıları, XAML işleme sırasında çağrılan tüm değer dönüştürücü yöntemlerine bir hizmet sağlayıcısı sağlar. Ancak, sağlamlık için hem hizmet sağlayıcısının kendisi hem de istenen herhangi bir hizmet için null değerler için kod yolları sağlamanız gerekir. İşaretlemeyi uzantınız bir XAML işlemci altyapısı tarafından sağlanan tipik hizmet desteğinin kullanılamadığı bir durumda uygulanırsa null değerler oluşabilir.

XAML hizmet sağlayıcısı bağlamındaki kullanılabilir hizmetler ve bunların nasıl kullanılacağı hakkında daha fazla bilgi için bkz. XAML için Tür Dönüştürücüleri ve biçimlendirme uzantıları.

Yararlı ProvideValue(IServiceProvider) bir sonuç üretmek için belirli bir hizmetin kullanılabilir olmasını gerektiren uygulamaların, bu hizmet kullanılamıyorsa özel durumlar oluşturması beklenir. Oluşturması önerilen özel durum şeklindedir InvalidOperationException.

Özel işaretleme uzantısının değer sağlamak için ihtiyaç duyduğu bağımsız değişkenlerden biri null ise, veri türü için geçersizse veya işaretleme uzantısının işleyebileceği bir değer içermiyorsa, uygulama özel durumlar da verebilir. Oluşturması önerilen özel durum şeklindedir InvalidOperationException.

Şunlara uygulanır

Ayrıca bkz.