ValueSerializer.GetSerializerFor 方法

定义

获取对象的 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

例外

descriptornull

注解

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

支持的另一种模式GetSerializerFor是返回内部TypeConverterValueSerializer类,该类是一种ValueSerializer实现,用于包装 TypeConverter 并将方法Convert*String转换为Convert方法 (例如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通过对类型声明应用 ValueSerializerAttribute 特性来指示类型的 。 方法GetSerializerFor是一种实用工具方法,它读取 CLR 类型系统信息,并在指定的 type上找到时返回基于 特性的新ValueSerializer类。 null 如果不存在此类序列化程序,则可能会返回 。 null 如果故意使用 null 值 ValueSerializerAttribute将类型特性化,则也可能返回 。

支持的另一种模式GetSerializerFor是返回内部TypeConverterValueSerializer类,该类是一种ValueSerializer实现,用于包装 TypeConverter 并将方法Convert*String转换为Convert方法 (例如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

如果上下文为指定的 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

用于转换的上下文信息。

返回

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

例外

typenull

注解

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

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

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

适用于