【发布时间】:2018-07-03 07:03:04
【问题描述】:
我在这些课程中有这个。
public class MyClass:BaseClass
{ }
public class BaseClass
{ }
public class CollectionClass
{
public string SomeProperty {get; set;}
public List<MyClass> Collection {get; set;}
}
在我的代码中,我想知道某个对象(例如CollectionClass)中的属性是否是List<BaseClass> 的类型,如果属性是List<MyClass> 的类型,我也想返回true。下面的代码解释了这一点。
public bool ContainsMyCollection(object obj)
{
foreach(var property in obj.GetType().GetProperties())
{
// Idk how to accomplish that
if(property isTypeof List<BaseClass>)
return true;
}
return false
}
【问题讨论】:
-
我写了一个答案,但我想我误解了,所以我现在删除了它。你知道
List<MyClass>不是List<BaseClass>的派生类型,对吧?例如,List<BaseClass> a = new List<MyClass>()不起作用。 -
if(property.PropertyType == typeof(List<BaseClass>))但不清楚你真正想要实现什么 -
也许更好地解释为什么你想要这个而不是你想要什么。
标签: c# reflection collections