.NET Generic TypeInfoを比較する方法
質問
プロパティのコレクションをフィルタリングして、タイプのすべてのプロパティを見つけたい EntityCollection<>
そのようです:
entity.GetProperties().Where(p => p.PropertyType == typeof(EntityCollection<>));
上記のコードは、プロパティがタイプになるため、常に結果を返しません EntityCollection<TEntity>
どこ TEntity
です EntityObject
.
私も使用しようとしました EntityCollection<EntityObject>
成功せずに。
私は特定のタイプのことを気にしません TEntity
, 、タイプのプロパティが必要です EntityCollection<>
タイプに関係なく TEntity
.
これは簡単なはずのようです、私はここでトリックを逃していますか? :-)
解決
まあ、あなたは使用できます:
Where(p => p.PropertyType.IsGenericType &&
p.PropertyType.GetGenericTypeDefinition() == typeof(EntityCollection<>))
それはあなたが望んでいるものですか?これが見つからないことに注意してください サブタイプ の EntityCollection<TEntity>
.
所属していません StackOverflow