我尝试过以下方法:
if ((type == typeof(ICollection<T>)))
if (type.GetInterfaces().Contains(System.Collections.Generic.ICollection<T>))
这些似乎都没有任何东西,甚至我所知道的是ICollections。如果我试图寻找IEnumerable,那么它会捕获太多东西,包括字符串。
SO上还有另一个答案就是说:
if(Obj is ICollection)
{
//Derived from ICollection
}
这对我来说甚至无法编译。我必须指明它是通用的。当我在调试器中查看对象类型时,这就是我所看到的:
{Name = "ICollection`1" FullName = "System.Collections.Generic.ICollection`1[[object1, object1Namespace, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"}
我不知道如何寻找这种类型。我想要的是任何类型的ICollection。
编辑1:这是我尝试识别的类型I的定义:
public virtual ICollection<object1> objects { get; set; }