MarkupExtension.ProvideValue(IServiceProvider) 메서드

정의

파생 클래스에서 구현된 경우 이 태그 확장의 대상 개체 속성에 대한 값으로 제공된 개체를 반환합니다.

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

매개 변수

serviceProvider
IServiceProvider

태그 확장에 대한 서비스를 제공할 수 있는 서비스 공급자 도우미입니다.

반환

확장이 적용되는 속성에 설정할 개체 값입니다.

설명

XAML 프로세서는 태그 확장인 형식 노드 및 멤버 값을 처리할 때 해당 태그 확장의 메서드를 호출 ProvideValue 하고 결과를 개체 그래프 또는 serialization 스트림에 씁니다. XAML 개체 작성기는 매개 변수를 통해 이러한 각 구현에 서비스 컨텍스트를 serviceProvider 전달합니다.

사용자 지정 태그 확장에서 구현 ProvideValue 하는 방법에 대한 자세한 내용은 "구현자에 대한 참고 사항" 섹션을 참조하세요.

WPF 사용 정보

중요

태그 집합 작업과 특정 상호 작용이 있는 WPF 클래스는 .NET Framework 4 구현에 IReceiveMarkupExtension 의존해서는 안 됩니다. 대신 -attributed 콜백을 사용합니다 XamlSetMarkupExtensionAttribute.

구현자 참고

일반적으로 사용자 지정 또는 기존 구현에서 사용할 수 있는 기본 서비스 공급자가 반환하는 MarkupExtension 일반적인 서비스에는 다음과 같은 기본 서비스가 포함됩니다.

잠재적으로 의 ProvideValue(IServiceProvider) 구현은 매개 변수를 serviceProvider 무시할 수 있습니다. 이는 값을 반환하는 데 컨텍스트가 전혀 필요하지 않은 일부 기본 시나리오에서 사용할 수 있습니다.

일반적인 사용에서 .NET Framework XAML 서비스 및 구현된 XAML 개체 작성기는 XAML 처리 중에 호출되는 모든 값 변환기 메서드에 서비스 공급자를 제공합니다. 그러나 견고성을 위해 서비스 공급자 자체와 요청된 서비스에 대해 모두 null 값에 대한 코드 경로를 제공해야 합니다. XAML 프로세서 인프라에서 제공하는 일반적인 서비스 지원을 사용할 수 없는 상황에서 태그 확장이 적용되는 경우 Null 값이 발생할 수 있습니다.

XAML 서비스 공급자 컨텍스트에서 사용 가능한 서비스 및 사용 방법에 대한 자세한 내용은 XAML에 대한 형식 변환기 및 태그 확장을 참조하세요.

유용한 ProvideValue(IServiceProvider) 결과를 생성하기 위해 특정 서비스를 사용할 수 있어야 하는 구현은 해당 서비스를 사용할 수 없는 경우 예외를 throw해야 합니다. throw할 권장 예외는 입니다 InvalidOperationException.

값을 제공하기 위해 사용자 지정 태그 확장에 필요한 인수 중 하나가 null이거나, 데이터 형식에 유효하지 않거나, 태그 확장에서 처리할 수 있는 값을 포함하지 않는 경우에도 구현에서 예외를 throw할 수 있습니다. throw할 권장 예외는 입니다 InvalidOperationException.

적용 대상

추가 정보