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