ValueSerializer.GetSerializerFor 메서드

정의

개체에 대한 ValueSerializer를 가져옵니다.Gets the ValueSerializer for an object.

오버로드

GetSerializerFor(PropertyDescriptor)

속성에 대한 CLR 속성 설명자를 전달하여 속성에 대해 선언된 ValueSerializer를 가져옵니다.Gets the ValueSerializer declared for a property, by passing a CLR property descriptor for the property.

GetSerializerFor(Type)

지정된 형식에 대해 선언된 ValueSerializer를 가져옵니다.Gets the ValueSerializer declared for the specified type.

GetSerializerFor(PropertyDescriptor, IValueSerializerContext)

지정된 컨텍스트를 사용하여 지정된 속성에 대해 선언된 ValueSerializer를 가져옵니다.Gets the ValueSerializer declared for the specified property, using the specified context.

GetSerializerFor(Type, IValueSerializerContext)

지정된 컨텍스트를 사용하여 지정된 형식에 대해 선언된 ValueSerializer를 가져옵니다.Gets the ValueSerializer declared for the specified type, using the specified context.

GetSerializerFor(PropertyDescriptor)

속성에 대한 CLR 속성 설명자를 전달하여 속성에 대해 선언된 ValueSerializer를 가져옵니다.Gets the ValueSerializer declared for a property, by passing a CLR property descriptor for the property.

public:
 static System::Windows::Markup::ValueSerializer ^ GetSerializerFor(System::ComponentModel::PropertyDescriptor ^ descriptor);
public static System.Windows.Markup.ValueSerializer GetSerializerFor (System.ComponentModel.PropertyDescriptor descriptor);
static member GetSerializerFor : System.ComponentModel.PropertyDescriptor -> System.Windows.Markup.ValueSerializer
Public Shared Function GetSerializerFor (descriptor As PropertyDescriptor) As ValueSerializer

매개 변수

descriptor
PropertyDescriptor

serialize될 속성에 대한 CLR 속성 설명자입니다.The CLR property descriptor for the property to be serialized.

반환

지정된 속성과 연결된 serializer입니다.The serializer associated with the specified property. null을 반환할 수 있습니다.May return null.

예외

descriptornull입니다.descriptor is null.

설명

속성 또는 속성에 대 한 값으로 사용 되는 형식에 대 한 ValueSerializer는 속성 또는 형식 선언에 ValueSerializerAttribute 특성을 적용 하 여 표시 됩니다.A ValueSerializer for a property, or for a type that is used as the value for a property, is indicated by applying the ValueSerializerAttribute attribute on the property or type declaration. GetSerializerFor 메서드는 CLR 형식 시스템 정보를 읽고 속성에 있는 경우 특성을 기반으로 새 ValueSerializer 클래스를 반환 하거나, 속성의 형식에 있는 경우 새 클래스를 반환 하는 유틸리티 메서드입니다.The GetSerializerFor method is a utility method that reads the CLR type system information and returns a new ValueSerializer class based on the attribute if found on the property, or then if found on the property's type. 이러한 직렬 변환기가 없는 경우 null 반환 될 수 있습니다.null might be returned if no such serializer exists. 형식이 나 속성에 null 값 ValueSerializerAttribute의도적으로 특성이 지정 된 경우에도 null 반환 될 수 있습니다.null might also be returned if a type or property is deliberately attributed with a null-value ValueSerializerAttribute.

GetSerializerFor에서 지 원하는 다른 모드는 TypeConverter를 래핑하고 Convert 메서드를 Convert*String 메서드로 변환 하는 ValueSerializer 구현인 내부 TypeConverterValueSerializer 클래스를 반환 하는 것입니다. 예를 들어 TypeConverter.ConvertTo 형식의 입력을 사용 하 여 String를 호출 하 고 ConvertToString로 변환 합니다.Another mode that GetSerializerFor supports is returning the internal TypeConverterValueSerializer class, which is a ValueSerializer implementation that wraps a TypeConverter and translates the Convert methods to Convert*String methods (for instance TypeConverter.ConvertTo is called with input of the String type, and translates to ConvertToString. 이 작업은 다음 모두 만족 하는 경우에만 수행 됩니다.This is done only in cases where all of the following are true:

참고

DateTime 형식이 DateTimeValueSerializer를 반환 하는 특수 한 경우는 다음과 같습니다. String 형식은 내부 이지만 함수 serializer (StringValueSerializer)를 반환 합니다.The following are special cases: DateTime types return a DateTimeValueSerializer; String types return an internal but functional serializer (StringValueSerializer).

GetSerializerFor(Type)

지정된 형식에 대해 선언된 ValueSerializer를 가져옵니다.Gets the ValueSerializer declared for the specified type.

public:
 static System::Windows::Markup::ValueSerializer ^ GetSerializerFor(Type ^ type);
public static System.Windows.Markup.ValueSerializer GetSerializerFor (Type type);
static member GetSerializerFor : Type -> System.Windows.Markup.ValueSerializer
Public Shared Function GetSerializerFor (type As Type) As ValueSerializer

매개 변수

type
Type

ValueSerializer를 가져올 형식입니다.The type to get the ValueSerializer for.

반환

지정된 형식과 연결된 직렬 변환기입니다.The serializer associated with the specified type. null을 반환할 수 있습니다.May return null.

예외

typenull입니다.type is null.

설명

형식에 대 한 ValueSerializer 형식 선언에 ValueSerializerAttribute 특성을 적용 하 여 표시 됩니다.A ValueSerializer for a type is indicated by applying the ValueSerializerAttribute attribute on the type declaration. GetSerializerFor 메서드는 CLR 형식 시스템 정보를 읽고 지정 된 type에 있는 경우 특성을 기반으로 새 ValueSerializer 클래스를 반환 하는 유틸리티 메서드입니다.The GetSerializerFor method is a utility method that reads the CLR type system information and returns a new ValueSerializer class based on the attribute if found on the specified type. 이러한 직렬 변환기가 없는 경우 null 반환 될 수 있습니다.null might be returned if no such serializer exists. 형식이 null 값 ValueSerializerAttribute의도적으로 특성을 사용 하는 경우에도 null 반환 될 수 있습니다.null might also be returned if a type is deliberately attributed with a null-value ValueSerializerAttribute.

GetSerializerFor에서 지 원하는 다른 모드는 TypeConverter를 래핑하고 Convert 메서드를 Convert*String 메서드로 변환 하는 ValueSerializer 구현인 내부 TypeConverterValueSerializer 클래스를 반환 하는 것입니다. 예를 들어 TypeConverter.ConvertTo 형식의 입력을 사용 하 여 String를 호출 하 고 ConvertToString로 변환 합니다.Another mode that GetSerializerFor supports is returning the internal TypeConverterValueSerializer class, which is a ValueSerializer implementation that wraps a TypeConverter and translates the Convert methods to Convert*String methods (for instance TypeConverter.ConvertTo is called with input of the String type, and translates to ConvertToString. 이 작업은 다음 모두 만족 하는 경우에만 수행 됩니다.This is done only in cases where all of the following are true:

참고

DateTime 형식이 DateTimeValueSerializer를 반환 하는 특수 한 경우는 다음과 같습니다. String 형식은 내부 이지만 함수 serializer (StringValueSerializer)를 반환 합니다.The following are special cases: DateTime types return a DateTimeValueSerializer; String types return an internal but functional serializer (StringValueSerializer).

GetSerializerFor(PropertyDescriptor, IValueSerializerContext)

지정된 컨텍스트를 사용하여 지정된 속성에 대해 선언된 ValueSerializer를 가져옵니다.Gets the ValueSerializer declared for the specified property, using the specified context.

public:
 static System::Windows::Markup::ValueSerializer ^ GetSerializerFor(System::ComponentModel::PropertyDescriptor ^ descriptor, System::Windows::Markup::IValueSerializerContext ^ context);
public static System.Windows.Markup.ValueSerializer GetSerializerFor (System.ComponentModel.PropertyDescriptor descriptor, System.Windows.Markup.IValueSerializerContext context);
static member GetSerializerFor : System.ComponentModel.PropertyDescriptor * System.Windows.Markup.IValueSerializerContext -> System.Windows.Markup.ValueSerializer
Public Shared Function GetSerializerFor (descriptor As PropertyDescriptor, context As IValueSerializerContext) As ValueSerializer

매개 변수

descriptor
PropertyDescriptor

serialize할 속성에 대한 설명자입니다.Descriptor for the property to be serialized.

context
IValueSerializerContext

변환에 사용되는 컨텍스트 정보입니다.Context information that is used for conversion.

반환

지정된 속성과 연결된 serializer입니다.The serializer associated with the specified property.

예외

descriptornull입니다.descriptor is null.

설명

이 오버 로드는 CLR 형식 시스템에서 보고 되는 특성을 전적으로 사용 하는 대신 context 서비스로 사용 되며 서비스의 IValueSerializerContext.GetValueSerializerFor구현을 호출 합니다.Rather than relying purely on attributes reported in the CLR type system, this overload uses the context as a service, and calls the service's implementation of IValueSerializerContext.GetValueSerializerFor. IValueSerializerContext.GetValueSerializerFor 구현은 일반적으로 descriptor를 사용 하지만 특정 컨텍스트의 특수 동작을 구현할 수도 있습니다.The IValueSerializerContext.GetValueSerializerFor implementation would typically also rely on the descriptor, but might implement special behavior for certain contexts.

호출자가 서비스에서 사용할 수 있는 IValueSerializerContext 있는 경우이 메서드를 호출 해야 합니다.This method should be called when the caller has an available IValueSerializerContext from a service. 이렇게 하면 특정 컨텍스트에 대해 올바른 ValueSerializer 반환 됩니다.This will ensure that the correct ValueSerializer is returned for the specific context.

컨텍스트가 지정 된 descriptor에 대 한 IValueSerializerContext.GetValueSerializerFor에서 null을 반환 하거나, 지정 하는 컨텍스트가 null이면 동작은 GetSerializerFor(PropertyDescriptor) 오버 로드를 호출 하는 것과 동일 합니다.If the context returns null from its IValueSerializerContext.GetValueSerializerFor for your specified descriptor, or if the context you specify is null, then behavior is identical to calling the GetSerializerFor(PropertyDescriptor) overload.

GetSerializerFor(Type, IValueSerializerContext)

지정된 컨텍스트를 사용하여 지정된 형식에 대해 선언된 ValueSerializer를 가져옵니다.Gets the ValueSerializer declared for the specified type, using the specified context.

public:
 static System::Windows::Markup::ValueSerializer ^ GetSerializerFor(Type ^ type, System::Windows::Markup::IValueSerializerContext ^ context);
public static System.Windows.Markup.ValueSerializer GetSerializerFor (Type type, System.Windows.Markup.IValueSerializerContext context);
static member GetSerializerFor : Type * System.Windows.Markup.IValueSerializerContext -> System.Windows.Markup.ValueSerializer
Public Shared Function GetSerializerFor (type As Type, context As IValueSerializerContext) As ValueSerializer

매개 변수

type
Type

ValueSerializer를 가져올 형식입니다.The type to get the ValueSerializer for.

context
IValueSerializerContext

변환에 사용되는 컨텍스트 정보입니다.Context information that is used for conversion.

반환

지정된 형식과 연결된 직렬 변환기입니다.The serializer associated with the specified type.

예외

typenull입니다.type is null.

설명

이 오버 로드는 CLR 형식 시스템에서 보고 되는 특성을 전적으로 사용 하는 대신 context 서비스로 사용 되며 서비스의 IValueSerializerContext.GetValueSerializerFor구현을 호출 합니다.Rather than relying purely on attributes reported in the CLR type system, this overload uses the context as a service, and calls the service's implementation of IValueSerializerContext.GetValueSerializerFor. IValueSerializerContext.GetValueSerializerFor 구현은 일반적으로 type를 사용 하지만 특정 컨텍스트의 특수 동작을 구현할 수도 있습니다.The IValueSerializerContext.GetValueSerializerFor implementation would typically also rely on the type, but might implement special behavior for certain contexts.

호출자가 서비스에서 사용할 수 있는 IValueSerializerContext 있는 경우이 메서드를 호출 해야 합니다.This method should be called when the caller has an available IValueSerializerContext from a service. 이렇게 하면 특정 컨텍스트에 대해 올바른 ValueSerializer 반환 됩니다.This will ensure that the correct ValueSerializer is returned for the specific context.

컨텍스트가 지정 된 type에 대 한 IValueSerializerContext.GetValueSerializerFor에서 null을 반환 하거나, 지정 하는 컨텍스트가 null이면 동작은 GetSerializerFor(Type) 오버 로드를 호출 하는 것과 동일 합니다.If the context returns null from its IValueSerializerContext.GetValueSerializerFor for your specified type, or if the context you specify is null, then behavior is identical to calling the GetSerializerFor(Type) overload.

적용 대상