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

例外

descriptornull

注解

ValueSerializer 个属性,或一个用作属性值的类型,通过对属性或类型声明应用 ValueSerializerAttribute 属性来指示。 该方法 GetSerializerFor 是一种实用工具方法,用于读取 CLR 类型系统信息,并根据属性找到的属性返回一个新 ValueSerializer 类(如果在该属性上找到,或者在属性的类型上找到)。 null 如果不存在此类序列化程序,则可能会返回。 null 如果类型或属性是故意使用 null 值 ValueSerializerAttribute进行特性化,则也可能返回 。

支持的另一种模式GetSerializerFor是返回内部TypeConverterValueSerializer类,它是包装ValueSerializer方法并将其转换为TypeConverterConvert方法的Convert*String实现TypeConverter.ConvertTo(例如String,使用类型的输入调用,并转换为 ConvertToString。 仅当以下所有内容均为 true 时,才会执行此操作:

注释

以下是特殊情况: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

例外

typenull

注解

通过对类型声明应用ValueSerializer属性来指示类型的 AValueSerializerAttribute。 该方法GetSerializerFor是一种实用工具方法,可读取 CLR 类型系统信息,并在指定ValueSerializer属性上找到时返回基于该属性的新type类。 null 如果不存在此类序列化程序,则可能会返回。 null 如果类型是故意使用 null 值 ValueSerializerAttribute进行特性化,则也可能返回 。

支持的另一种模式GetSerializerFor是返回内部TypeConverterValueSerializer类,它是包装ValueSerializer方法并将其转换为TypeConverterConvert方法的Convert*String实现TypeConverter.ConvertTo(例如String,使用类型的输入调用,并转换为 ConvertToString。 仅当以下所有内容均为 true 时,才会执行此操作:

注释

以下是特殊情况: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

用于转换的上下文信息。

返回

与指定属性关联的序列化程序。

例外

descriptornull

注解

此重载使用 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

用于转换的上下文信息。

返回

与指定类型关联的序列化程序。

例外

typenull

注解

此重载使用 context 服务,而不是完全依赖 CLR 类型系统中报告的属性,而是调用服务的实现 IValueSerializerContext.GetValueSerializerFor。 实现 IValueSerializerContext.GetValueSerializerFor 通常也依赖于该 type实现,但可能会针对特定上下文实现特殊行为。

当调用方具有可从服务获取的可用 IValueSerializerContext 时,应调用此方法。 这将确保为特定上下文返回正确的值 ValueSerializer

如果上下文从null指定的上下文返回IValueSerializerContext.GetValueSerializerFor,或者指定的type上下文返回,则行为与调用nullGetSerializerFor(Type)重载相同。

适用于