6
我試圖檢查一個類型是否實現了泛型集合< T>接口,因爲這是我的任何泛型集合的基接口。檢測類型是否實現ICollection <T>
下面的代碼不起作用
GetType(ICollection(Of)).IsAssignableFrom(
objValue.GetType().GetGenericTypeDefinition())
什麼是檢測如果一個類型實現了一個通用接口的好辦法?
我試圖檢查一個類型是否實現了泛型集合< T>接口,因爲這是我的任何泛型集合的基接口。檢測類型是否實現ICollection <T>
下面的代碼不起作用
GetType(ICollection(Of)).IsAssignableFrom(
objValue.GetType().GetGenericTypeDefinition())
什麼是檢測如果一個類型實現了一個通用接口的好辦法?
CustomCollection c = new CustomCollection();
bool implementICollection = c.GetType().GetInterfaces()
.Any(x => x.IsGenericType &&
x.GetGenericTypeDefinition() == typeof(ICollection<>));
的替代他人如下:
if (MyObject is ICollection<T>)
...
注:如果T
是在編譯時已知這隻會工作。
這是正確答案;我測試過了 – Graviton 2009-09-24 14:47:35