了解ValueProviderResult.ConvertTo(Type)方法

时间:2016-11-03 17:21:08

标签: c# asp.net .net object casting

我不太明白这种方法的重点。

它将ValueProviderResult转换为Object ..但是Method接受了它应该转换为的 Type 参数。那有什么意义呢?或者为什么它需要 Type 参数,如果它总是只返回一种对象?

这是一个工作示例: 你可以看到,在我转换之后,我仍然需要将它转换为正确的类型。

.then(async())

1 个答案:

答案 0 :(得分:1)

基础对象将是输入类型的实例。

方法的要点

ValueProviderResult.ConvertTo Method (Type)

  

将此结果封装的值转换为   指定的类型。

如果您想使用具体类型

,您始终可以创建通用扩展方法
///<summary>
/// Converts the value that is encapsulated by this result to the specified type.
///</summary>
public static class ValueProviderResultExtension {
    public static T ConvertTo<T>(this ValueProviderResult valueProvider) {
        return (T) valueProvider.ConvertTo(typeof(T));
    }
}

然后使用

RequestTypeEnum requestType = bindingContext.ValueProvider.GetValue(requestTypePropertyName).ConvertTo<RequestTypeEnum>();