我有这个:
var Virtual = Property.GetValue(Entity, null);
正在使用实体框架从存储库中提取实体。
如何确定它是单个对象还是集合?
我尝试检查类型,但不确定将其与什么进行比较。
var VirtualType = Virtual.GetType();
使用调试器检查时,Virtual 要么是DynamicProxy
实例化的单一的class
,要么是HashSet
实例化的ICollection
。如果.GetType()
在DynamicProxy
this 上使用,则会抛出:
Object reference not set to an instance of an object.
我也试过这个:
var test = (IEnumerable<object>)Virtual;
if (test.Count() > 0)
它适用于集合,但在单个对象上失败。
我也试过这个:
if (Virtual is Enumerable)
但这是错误的,即使对于收藏也是如此。
我如何通过反思来辨别两者?