IAmbientProvider 인터페이스

정의

앰비언트 속성 또는 앰비언트 형식에 대한 정보 항목을 형식 변환기 및 태그 확장에 반환할 수 있는 서비스를 나타냅니다.Represents a service that can return information items about ambient properties or ambient types to type converters and markup extensions.

public interface class IAmbientProvider
public interface IAmbientProvider
type IAmbientProvider = interface
Public Interface IAmbientProvider

설명

이 인터페이스는 형식 변환기 및 태그 확장을 통해 XAML 형식 시스템 (개체)에 대 한 앰비언트 속성 식별자를 가져오는 데 사용할 수 있는 서비스를 나타냅니다 XamlMember .This interface represents the service that can help type converters and markup extensions to get the ambient property identifiers for the XAML type system (XamlMember objects). 또한 서비스는 클래스에서 앰비언트 속성 값을 가져올 수 있습니다.The service can also get the ambient property values from classes. 형식은 앰비언트 일 수도 있습니다. 해당 형식을 값으로 사용 하는 멤버는 앰비언트로 간주 되어야 합니다.Types can also be ambient; any member that uses that type as its value should be considered ambient.

일반적으로이 서비스는 GetService 컨텍스트별 서비스 공급자에 대해 수행 되는를 호출 하 여 반환 됩니다.This service is typically returned through a call to GetService, which is made against a context-specific service provider. 서비스 공급자는 값 변환기의 실행 코드와 같이 일반적으로 필요한 컨텍스트에서 사용할 수 있습니다.The service provider is generally available to contexts that need it, such as the execution code of a value converter. 자세한 내용은 Type Converters and Markup Extensions for XAML 하 고 Service Contexts Available to Type Converters and Markup Extensions합니다.For more information, see Type Converters and Markup Extensions for XAML and Service Contexts Available to Type Converters and Markup Extensions.

앰비언트 속성 정보About Ambient Properties

앰비언트 속성은 속성 값이 속성 값을 사용할 수 있어야 하는 속성입니다 .이 속성에는 XAML 노드 구조와 XAML 노드 구조에 존재 하는 태그 확장 사용 및 해당 속성 값에서 만든 개체 그래프가 있습니다.An ambient property is a property whose property value should be available to type converter and markup extension usages that exist in the XAML node structure and in the object graph created from it. 이는 로드 경로 또는 저장 경로의 serialization 단계에 대 한 개체 작성 단계 중에 XAML 프로세서와 관련이 있습니다.This is relevant for a XAML processor during the object-writing phase of the load path or the serialization phase of a save path.

로드 경로의 경우 앰비언트 속성 값은 XAML 노드 구조에서 해당 속성 아래에 있는 다른 속성의 개체 그래프에 있는 값에 영향을 줄 수 있습니다.In the load path case, the ambient property value might influence the value in the object graph of other properties that exist underneath it in a XAML node structure. XAML 노드 스트림으로 처리 되는 경우 앰비언트 개념은에서로의 형식 변환기 및 태그 확장에 앰비언트 속성 값을 사용할 수 있어야 함을 의미 합니다 StartObject EndObject .When processed as a XAML node stream, the ambient concept means the ambient property value must be available to type converters and markup extensions from StartObject to EndObject. 마찬가지로 저장 경로에 사용 되는 형식 변환기는 앰비언트 속성 및 해당 값에 대 한 정보를 사용할 수 있습니다.Similarly, a type converter that is used for the save path can use knowledge of the ambient property and its value. 따라서 생성 되는 XAML에는 더 나은 라운드트립 표현입니다.Therefore, the XAML that is produced is a better round-trip representation.

일반적으로 멤버의 경우 XAML은 개체의 멤버를 처리 해야 하는 순서를 지정 하지 않습니다.For members in general, XAML does not specify the order in which members of an object must be processed. 그러나 다른 속성에 포함 된 형식 변환기 및 태그 확장 사용이 서비스를 통해 액세스할 수 있도록 모든 앰비언트 속성 값을 먼저 XAML 판독기에서 처리 해야 합니다 IAmbientProvider .However, any ambient property value must be processed first by the XAML reader so that the type converter and markup extension usages that are contained in other properties can access it through the IAmbientProvider service.

DependsOn 또한 XAML 노드 처리 순서에 영향을 주는 이와 비슷한 개념 이며DependsOn is a similar concept that also influences XAML node-processing order. 그러나 DependsOn 피어 노드 및 멤버 관계; 에서만 사용할 수 있습니다 모든 하위 항목에는 영향을 줄 수 없습니다.However, DependsOn can only be used for peer member and node relationships; it cannot influence all descendants. 또한는 DependsOn 개체 그래프 속성 설정에 직접적으로 영향을 주는 반면 앰비언트 기술은 형식 변환기 또는 태그 확장에 의존 합니다.Also, DependsOn directly influences object graph property setting; whereas the ambient technique relies on type converters or markup extensions. 앰비언트 기술에는 앰비언트 속성 값을 해석 하 고 개체에 적용 하는 방법을 지정 하는 특정 형식 변환기 또는 태그 확장 정의도 있어야 합니다.In the ambient technique, there must also be a specific type converter or markup extension definition that specifies how the ambient property value should be interpreted and applied to the object.

WPF 사용 정보WPF Usage Notes

에 나와 있는 앰비언트 속성 시나리오를 합니다 WPFWPF 기능 집합은 Style.TargetType, 다른 값에 대 한 필수 속성 이름을 조회를 한정할 수는 있습니다.An ambient property scenario that is illustrated in the WPFWPF feature set is Style.TargetType, which can qualify the necessary property name lookups for other values. 이 경우 Style.TargetType 값은 Setter.Property 그 아래의 XAML 노드에 있는 값을 한정 합니다.In this case, the Style.TargetType value qualifies the Setter.Property values that are located in the XAML nodes underneath it. Setter.Property 에 대 한 형식 변환기의 동작을 사용 하는 DependencyProperty합니다.Setter.Property uses the type converter behavior for a DependencyProperty. 이 동작은 액세스 앰비언트 Style.TargetType 쿼리하여 값 GetFirstAmbientValue 형식 변환기 및 태그 확장에 사용할 수 있는 서비스 컨텍스트에서 합니다.This behavior accesses the ambient Style.TargetType value by querying GetFirstAmbientValue from a service context that is available to type converters and markup extensions.

WPF 기능 집합에 설명 된 앰비언트 형식 시나리오는 ResourceDictionary 입니다.An ambient type scenario that is illustrated in the WPF feature set is ResourceDictionary. ResourceDictionary 에는 MergedDictionaries 병합할 다른 개체를 포함할 수 있는 속성 및 병합 된 ResourceDictionary 시나리오에 대 한 리소스 확인 순서가 형식이 로드 되는 순서와 충돌 합니다.ResourceDictionary has a MergedDictionaries property that can contain other ResourceDictionary objects to merge, and the intended order of resource resolution for the merged scenario clashes with the order that types are loaded. ResourceDictionaryAmbientAttributeXAML 프로세서가 사용으로 병합 된 사전에서 참조를 올바르게 처리할 수 있도록 적용 됩니다 StaticResource .ResourceDictionary applies AmbientAttribute so that a XAML processor can correctly process the references in a merged dictionary with StaticResource usages. 특히 StaticResource 는를 호출 하는 태그 확장입니다 GetAllAmbientValues .Specifically, StaticResource is a markup extension, which calls GetAllAmbientValues.

메서드

GetAllAmbientValues(IEnumerable<XamlType>, Boolean, IEnumerable<XamlType>, XamlMember[])

요청된 형식 및 속성 집합에 대해 앰비언트 속성 정보 항목의 열거 가능한 집합을 반환합니다.Returns an enumerable set of ambient property information items for the requested set of types and properties.

GetAllAmbientValues(IEnumerable<XamlType>, XamlMember[])

요청된 속성 집합에 대해 앰비언트 속성 정보 항목의 열거 가능한 집합을 반환합니다.Returns an enumerable set of ambient property information items for the requested set of properties.

GetAllAmbientValues(XamlType[])

요청된 형식에 대해 가능한 앰비언트 형식의 열거 가능한 개체 인스턴스 집합을 반환합니다.Returns an enumerable set of object instances of possible ambient types for the requested types.

GetFirstAmbientValue(IEnumerable<XamlType>, XamlMember[])

어떠한 속성이 먼저 발견되는지를 기준으로 요청된 속성 집합에서 단일 앰비언트 속성 정보 항목을 반환합니다.Returns a single ambient property information item from the requested set of properties, based on which property is first encountered.

GetFirstAmbientValue(XamlType[])

요청된 형식에 대해 가능한 앰비언트 형식인 첫 번째 일치 개체를 반환합니다.Returns the first matching object that is a possible ambient type for the requested types.

적용 대상

추가 정보