2009-12-24 34 views
23

Bazı özellikler List<float>, List<int> vb. Özellikleri olan bir sınıf var. Şimdi yansıma yoluyla bu sınıfın özelliklerini soruyorum, böylece PropertyInfo listesini aldım.Genel türler nasıl karşılaştırılır?

Tür List<> türlerini filtrelemek istiyorum. Ancak,

karşılaştırması başarısız olur.

ben yani şu karşılaştırma işleri, isimlerini karşılaştırarak bu sorunun üstesinden gelebilirsiniz:

propertyInfo.PropertyType.Name == typeof(List<>).Name 

Ben Jenerik türlerini karşılaştırmak için daha iyi bir yolu olması gerektiğini düşünüyorum. Herhangi bir ipucu?

cevap

49

Sen kullanabilirsiniz:

Type type = propertyInfo.PropertyType; 
if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(List<>)) 
{ 
    ... 
} 
İlgili konular