使用Reflection等效于“ModelMetadata.IsComplexType”

时间:2014-01-13 14:43:25

标签: c# asp.net-mvc reflection modelmetadata

我正在尝试使用System.Reflection为属性获取与使用metadata相同的结果,特别是IsComplexType属性。我面临的问题是我找不到MVC框架用来确定属性是否复杂的逻辑。我能找到的复杂类型的唯一功能是它是一个类is not a built in type of the .Net framework。如何在不使用ModelMetadata属性的情况下确定(属性)类型是否被视为复杂类型?

1 个答案:

答案 0 :(得分:2)

IsComplexType 以下列方式实现:

!TypeDescriptor.GetConverter(this.ModelType).CanConvertFrom(typeof(string));

所有这些类都不是MVC特有的,可供您使用。您只需要将ModelType替换为您要测试的类型。