2009-09-24 19 views
6

Bir tür genel koleksiyonları için temel bir arabirim olduğundan, bir tür genel ICollection < T> arabirimini uygular olup olmadığını denetlemeye çalışıyorum.Yazım olup olmadığını belirleme ICollection <T>

Aşağıdaki kod bir tür genel bir arayüz uygulaması halinde saptamanın iyi yolu nedir

GetType(ICollection(Of)).IsAssignableFrom(
    objValue.GetType().GetGenericTypeDefinition()) 

çalışmıyor?

if (MyObject is ICollection<T>) 
    ... 

Not: başkalarına

cevap

24
CustomCollection c = new CustomCollection(); 

bool implementICollection = c.GetType().GetInterfaces() 
          .Any(x => x.IsGenericType && 
          x.GetGenericTypeDefinition() == typeof(ICollection<>)); 
+0

Doğru cevap budur; Test ettim – Graviton

1

alternatif şudur T derleme zamanında biliniyorsa Bu yalnızca çalışacaktır.

İlgili konular