AmbientAttribute Sınıf

Tanım

Bir özelliğin veya türün ortam olarak kabul edilmesi gerektiğini belirtir. Ortam kavramı, XAML işlemcilerinin üyelerin tür sahiplerini belirleme şekliyle ilgilidir.

public ref class AmbientAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Property, Inherited=true)]
public sealed class AmbientAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method | System.AttributeTargets.Property, Inherited=true)]
public sealed class AmbientAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Property, Inherited=true)>]
type AmbientAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method | System.AttributeTargets.Property, Inherited=true)>]
type AmbientAttribute = class
    inherit Attribute
Public NotInheritable Class AmbientAttribute
Inherits Attribute
Devralma
AmbientAttribute
Öznitelikler

Açıklamalar

Ortam özelliği, nesne grafı oluştururken değerin ayrıştırıcı bağlamında kullanılabilir olması beklenen, ancak tipik tür üyesi aramasının hemen oluşturulan XAML düğüm kümesinin amaçları doğrultusunda askıya alındığı bir özelliktir. Ortam kavramı için iki ana senaryo vardır:

  • Aynı nesnenin diğer bazı özellikleri, nesne özelliği aramasının nasıl çalışması gerektiğini etkiler ve niteler.

  • özelliği daha büyük bir erteleme mekanizmasını temsil eder ve bir üye değeri aramak için ortam özellikleri geçerli nesnenin içindeki tüm nesnelere genişletilir.

Bu öznitelik, ortam özelliği arama davranışını etkinleştiren beklenen kapsayıcılara sahip belirli özelliklere uygulanabilir veya bir özellik için söz konusu değer türünün tüm durumlarında ortam özelliği davranışını etkinleştirmek üzere bir sınıfa uygulanabilir.

AmbientAttribute bir XAML eklenebilir özelliğinin ortam olarak attribubun desteklenebileceği bir CLR yöntemine de uygulanabilir. Bir CLR uygulamasında bir XAML ekli özelliği ve yöntemleriyle getset bir erişimci deseni olarak yansıma olarak uygulandığından/temsil edildiğinden, bu büyük olasılıkla gereklidir. Özniteliğin gerçek CLR özelliği yoktur, bu nedenle için AttributeTargetsProperty kullanımını kısıtlamak ortam olarak eklenebilir bir üye belirtmeyi etkinleştirmez. Ortam olarak bildirmek istediğiniz eklenebilir bir üye için erişimciyi ilişkilendirin get . Eklenebilir üyelerin yöntemlerini özellikle desteklemeyen yöntemleri öznitelik olarak kullanmamalısınız.

.NET Framework önceki sürümlerinde, bu sınıf WPF'ye özgü WindowsBase derlemesinde mevcut oldu. .NET Framework 4'te System.Xaml AmbientAttribute derlemesindedir. Daha fazla bilgi için bkz . WPF'den System.Xaml'e Geçirilen Türler.

Ortam türleri (tür düzeyinde uygulanan türler AmbientAttribute ), bir özelliğin türünün sıra dışı çözülmesi gereken belirli XAML işleme durumları için kullanılabilir.

Nesne Yazıcı Senaryoları

Bir XAML nesne yazıcısı tanımlıyorsanız ve uygulandığı yerde AmbientAttribute bir özellik, yöntem veya türle karşılaşırsanız, genellikle nesneleri yazmak için gereken hedeflenen ortam özelliği arama davranışını belirlemek için bir hizmete erişmeniz gerekir. Daha fazla bilgi için bkz. IAmbientProvider.

Değer Dönüştürücüleri

Tür dönüştürücülerinin veya işaretleme uzantılarının, niteliğe sahip veya niteliksiz dize adlarına göre üyeleri veya türleri belirten özellikler gibi dolaylı tür eşlemelerini temsil eden özellikleri işlemek için ortam bilgilerini bilmesi gerekebilir. Bu senaryoda, AmbientAttribute doğrudan değer dönüştürücüsü kod mantığı için kullanılması amaçlanmamıştır. Bunun yerine, değer dönüştürücüsü çağrıldığında hizmet bağlamlarını değer dönüştürücü yöntemlerinize geçirecek IAmbientProvider olan XAML yazıcı işleme davranışına güvenmelidir.

AmbientAttribute için WPF Senaryoları

  • () özelliğinin StyleTargetTypeözelliği, değerlerdeki özellik adları için yedekleme başvurularını bulmak için gereken gerekli özellik adı aramalarını niteleyebilirSetter.Property.

  • Bir Resources özellik içindeki tüm içerik (bir ResourceDictionaryöğesinin öğeleri) ve şablon içeriği, değer olarak diğer eşlere erişebilmelidir. Tüm Resources özelliğin ortam olarak bildirilmesi, WPF XAML ayrıştırıcısında bunu etkinleştiren mantığı çağırır.

Tür düzeyinde ayar AmbientAttribute için bir senaryo örneği için bkzResourceDictionary.

Oluşturucular

AmbientAttribute()

AmbientAttribute sınıfının yeni bir örneğini başlatır.

Özellikler

TypeId

Türetilmiş bir sınıfta uygulandığında, bu Attributeiçin benzersiz bir tanımlayıcı alır.

(Devralındığı yer: Attribute)

Yöntemler

Equals(Object)

Bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değeri döndürür.

(Devralındığı yer: Attribute)
GetHashCode()

Bu örneğe ilişkin karma kodu döndürür.

(Devralındığı yer: Attribute)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
IsDefaultAttribute()

Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin değerinin türetilmiş sınıf için varsayılan değer olup olmadığını gösterir.

(Devralındığı yer: Attribute)
Match(Object)

Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değer döndürür.

(Devralındığı yer: Attribute)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Bir ad kümesini karşılık gelen bir dağıtma tanımlayıcısı kümesine eşler.

(Devralındığı yer: Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Bir arabirimin tür bilgilerini almak için kullanılabilecek bir nesnenin tür bilgilerini alır.

(Devralındığı yer: Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Bir nesnenin sağladığı tür bilgisi arabirimlerinin sayısını alır (0 ya da 1).

(Devralındığı yer: Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Bir nesne tarafından sunulan özelliklere ve yöntemlere erişim sağlar.

(Devralındığı yer: Attribute)

Şunlara uygulanır

Ayrıca bkz.