私はこれを持っています:
var Virtual = Property.GetValue(Entity, null);
エンティティは、EntityFrameworkを使用してリポジトリからプルされています。
それが単一のオブジェクトなのかコレクションなのかをどのように判断できますか?
タイプを確認してみましたが、何と比較すればいいのかわかりませんでした。
var VirtualType = Virtual.GetType();
デバッガーで検査すると、Virtualはインスタンス化されたDynamicProxy
シングルclass
またはHashSet
インスタンス化されたのいずれかICollection
です。.GetType()
で使用される場合、DynamicProxy
これはスローされます:
Object reference not set to an instance of an object.
私もこれを試しました:
var test = (IEnumerable<object>)Virtual;
if (test.Count() > 0)
これはコレクションでは機能しますが、単一のオブジェクトでは失敗します。
私もこれを試しました:
if (Virtual is Enumerable)
しかし、それはコレクションにとってさえ誤りでした。
どうすれば反射を通して2つを識別できますか?