Поделиться через


ValueSerializer.GetSerializerFor Метод

Определение

Получает ValueSerializer для объекта.

Перегрузки

GetSerializerFor(PropertyDescriptor)

Возвращает объект ValueSerializer, объявленный для свойства, передавая дескриптор свойства CLR для свойства.

GetSerializerFor(Type)

Получает ValueSerializer, объявленный для указанного типа.

GetSerializerFor(PropertyDescriptor, IValueSerializerContext)

Получает объявленный ValueSerializer для указанного свойства, используя заданный контекст.

GetSerializerFor(Type, IValueSerializerContext)

Получает объект ValueSerializer, объявленный для указанного типа, используя заданный контекст.

GetSerializerFor(PropertyDescriptor)

Возвращает объект ValueSerializer, объявленный для свойства, передавая дескриптор свойства CLR для свойства.

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

Дескриптор свойства CLR, которое нужно сериализовать.

Возвращаемое значение

Сериализатор, связанный с указанным свойством. Может возвращать null.

Исключения

descriptor имеет значение null.

Комментарии

Для ValueSerializer свойства или для типа, используемого в качестве значения свойства, указывается путем применения атрибута ValueSerializerAttribute к объявлению свойства или типа. Метод GetSerializerFor является служебным методом, который считывает сведения о системе типа CLR и возвращает новый ValueSerializer класс на основе атрибута , если он найден в свойстве, или если он найден в типе свойства. null Может быть возвращено, если такого сериализатора не существует. null Также может возвращаться, если типу или свойству намеренно присваивается значение ValueSerializerAttributeNULL.

Другой поддерживаемый режим GetSerializerFor — возврат внутреннего TypeConverterValueSerializer класса, который представляет собой ValueSerializer реализацию, которая заключает TypeConverter в оболочку и преобразует методы в Convert*StringConvert методы (напримерTypeConverter.ConvertTo, вызывается с входными данными String типа и преобразуется в ConvertToString. Это делается только в тех случаях, когда выполняются все указанные ниже действия.

Примечание

Ниже приведены особые случаи: DateTime типы возвращают DateTimeValueSerializer; String типы возвращают внутренний, но функциональный сериализатор (StringValueSerializer).

Применяется к

GetSerializerFor(Type)

Получает ValueSerializer, объявленный для указанного типа.

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.

Возвращаемое значение

Сериализатор, связанный с указанным типом. Может возвращать null.

Исключения

type имеет значение null.

Комментарии

Для ValueSerializer типа указывается путем применения атрибута ValueSerializerAttribute к объявлению типа. Метод GetSerializerFor является служебным методом, который считывает сведения о системе типа CLR и возвращает новый ValueSerializer класс на основе атрибута , если он найден в указанном typeобъекте . null Может быть возвращено, если такого сериализатора не существует. null Также может возвращаться, если типу намеренно присваивается значение ValueSerializerAttributeNULL.

Другой поддерживаемый режим GetSerializerFor — возврат внутреннего TypeConverterValueSerializer класса, который представляет собой ValueSerializer реализацию, которая заключает TypeConverter в оболочку и преобразует методы в Convert*StringConvert методы (напримерTypeConverter.ConvertTo, вызывается с входными данными String типа и преобразуется в ConvertToString. Это делается только в тех случаях, когда выполняются все указанные ниже действия.

Примечание

Ниже приведены особые случаи: DateTime типы возвращают DateTimeValueSerializer; String типы возвращают внутренний, но функциональный сериализатор (StringValueSerializer).

Применяется к

GetSerializerFor(PropertyDescriptor, IValueSerializerContext)

Получает объявленный ValueSerializer для указанного свойства, используя заданный контекст.

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

Дескриптор свойства, которое нужно сериализовать.

context
IValueSerializerContext

Контекстная информация, используемая при выполнении преобразования.

Возвращаемое значение

Сериализатор, связанный с указанным свойством.

Исключения

descriptor имеет значение null.

Комментарии

Вместо того, чтобы полагаться исключительно на атрибуты, сообщаемые в системе context типов CLR, эта перегрузка использует как службу и вызывает реализацию IValueSerializerContext.GetValueSerializerForслужбы . Реализация IValueSerializerContext.GetValueSerializerFor обычно также зависит от descriptor, но может реализовывать специальное поведение для определенных контекстов.

Этот метод следует вызывать, если вызывающий объект доступен IValueSerializerContext из службы. Это гарантирует, что возвращается правильное ValueSerializer значение для конкретного контекста.

Если контекст возвращается null из указанного IValueSerializerContext.GetValueSerializerFordescriptorобъекта или если задан nullконтекст , то поведение идентично вызову перегрузки GetSerializerFor(PropertyDescriptor) .

Применяется к

GetSerializerFor(Type, IValueSerializerContext)

Получает объект ValueSerializer, объявленный для указанного типа, используя заданный контекст.

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.

context
IValueSerializerContext

Контекстная информация, используемая при выполнении преобразования.

Возвращаемое значение

Сериализатор, связанный с указанным типом.

Исключения

type имеет значение null.

Комментарии

Вместо того, чтобы полагаться исключительно на атрибуты, сообщаемые в системе context типов CLR, эта перегрузка использует как службу и вызывает реализацию IValueSerializerContext.GetValueSerializerForслужбы . Реализация IValueSerializerContext.GetValueSerializerFor обычно также зависит от type, но может реализовывать специальное поведение для определенных контекстов.

Этот метод следует вызывать, если вызывающий объект доступен IValueSerializerContext из службы. Это гарантирует, что возвращается правильное ValueSerializer значение для конкретного контекста.

Если контекст возвращается null из указанного IValueSerializerContext.GetValueSerializerFortypeобъекта или если задан nullконтекст , то поведение идентично вызову перегрузки GetSerializerFor(Type) .

Применяется к