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*String
Convert
методы (напримерTypeConverter.ConvertTo, вызывается с входными данными String типа и преобразуется в ConvertToString. Это делается только в тех случаях, когда выполняются все указанные ниже действия.
Объект TypeConverterAttribute находится в соответствующем свойстве или типе соответствующего свойства.
Указанный TypeConverter объект можно успешно создать.
Возвращает TypeConverter
true
для TypeConverter.ConvertTo, вызываемого ссылкой на String тип .Возвращает TypeConverter
true
для TypeConverter.CanConvertTo, вызываемого ссылкой на String тип .Возвращает TypeConverter
true
для TypeConverter.CanConvertFrom, вызываемого ссылкой на String тип .
Примечание
Ниже приведены особые случаи: 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*String
Convert
методы (напримерTypeConverter.ConvertTo, вызывается с входными данными String типа и преобразуется в ConvertToString. Это делается только в тех случаях, когда выполняются все указанные ниже действия.
Объект TypeConverterAttribute найден в
type
.Указанный TypeConverter объект можно успешно создать.
Возвращает TypeConverter
true
для TypeConverter.ConvertTo, вызываемого ссылкой на String тип .Возвращает TypeConverter
true
для TypeConverter.CanConvertTo, вызываемого ссылкой на String тип .Возвращает TypeConverter
true
для TypeConverter.CanConvertFrom, вызываемого ссылкой на String тип .
Примечание
Ниже приведены особые случаи: 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) .