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 형식 시스템에 대 한 앰비언트 속성 id를 가져오려면 태그 확장에 도움이 되는 서비스를 나타냅니다 (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 노드 구조에 사용할 수 있어야 하는 속성입니다.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. 이 로드 경로 개체 4-5 단계 또는 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 노드 스트림으로 처리 하는 경우 앰비언트 개념은 의미 앰비언트 속성 값을 형식 변환기 또는 태그 확장에서 사용할 수 있어야 합니다 StartObjectEndObject입니다.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. ResourceDictionaryMergedDictionaries 기타를 포함할 수 있는 속성 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. ResourceDictionary 적용 대상 AmbientAttribute XAML 프로세서를 사용 하 여 병합 된 사전에 대 한 참조를 올바르게 처리할 수 있도록 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.

적용 대상

추가 정보