如何检查对象是否为ICollection <t>?

时间:2018-04-04 15:17:52

标签: c# reflection

我尝试过以下方法:

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; }

0 个答案:

没有答案