ValueSerializer.GetSerializerFor 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取对象的对象 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 如果类型或属性是故意使用 null 值 ValueSerializerAttribute进行特性化,则也可能返回 。
支持的另一种模式GetSerializerFor是返回内部TypeConverterValueSerializer类,它是包装ValueSerializer方法并将其转换为TypeConverterConvert方法的Convert*String实现TypeConverter.ConvertTo(例如String,使用类型的输入调用,并转换为 ConvertToString。 仅当以下所有内容均为 true 时,才会执行此操作:
在相关属性或相关属性的类型上找到 A TypeConverterAttribute 。
可以成功构造指示 TypeConverter 。
返回TypeConverter
true的类型TypeConverter.ConvertTo,称为引用类型String。返回TypeConverter
true的类型TypeConverter.CanConvertTo,称为引用类型String。返回TypeConverter
true的类型TypeConverter.CanConvertFrom,称为引用类型String。
注释
以下是特殊情况:DateTime类型返回;DateTimeValueSerializerString类型返回内部但功能序列化程序(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属性来指示类型的 AValueSerializerAttribute。 该方法GetSerializerFor是一种实用工具方法,可读取 CLR 类型系统信息,并在指定ValueSerializer属性上找到时返回基于该属性的新type类。
null 如果不存在此类序列化程序,则可能会返回。
null 如果类型是故意使用 null 值 ValueSerializerAttribute进行特性化,则也可能返回 。
支持的另一种模式GetSerializerFor是返回内部TypeConverterValueSerializer类,它是包装ValueSerializer方法并将其转换为TypeConverterConvert方法的Convert*String实现TypeConverter.ConvertTo(例如String,使用类型的输入调用,并转换为 ConvertToString。 仅当以下所有内容均为 true 时,才会执行此操作:
TypeConverterAttribute在 .
type可以成功构造指示 TypeConverter 。
返回TypeConverter
true的类型TypeConverter.ConvertTo,称为引用类型String。返回TypeConverter
true的类型TypeConverter.CanConvertTo,称为引用类型String。返回TypeConverter
true的类型TypeConverter.CanConvertFrom,称为引用类型String。
注释
以下是特殊情况:DateTime类型返回;DateTimeValueSerializerString类型返回内部但功能序列化程序(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.GetValueSerializerFor,或者指定的descriptor上下文返回,则行为与调用nullGetSerializerFor(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.GetValueSerializerFor,或者指定的type上下文返回,则行为与调用nullGetSerializerFor(Type)重载相同。