Frage

Ich möchte eine Sammlung von Eigenschaften filtern, um alle Eigenschaften zu finden, die vom Typ sind EntityCollection<> Like SO:

entity.GetProperties().Where(p => p.PropertyType == typeof(EntityCollection<>));

Der obige Code gibt immer keine Ergebnisse zurück, da die Eigenschaften vom Typ sein werden EntityCollection<TEntity> wo TEntity ist ein EntityObject.

Ich habe auch versucht zu benutzen EntityCollection<EntityObject> ohne Erfolg.

Ich kümmere mich nicht um die spezifische Art von TEntity, Ich möchte nur Eigenschaften, die vom Typ sind EntityCollection<> unabhängig von der Art von TEntity.

Das scheint einfach zu sein, fehlt mir hier einen Trick? :-)

War es hilfreich?

Lösung

Nun, Sie könnten verwenden:

Where(p => p.PropertyType.IsGenericType && 
           p.PropertyType.GetGenericTypeDefinition() == typeof(EntityCollection<>))

Nach dem wählst du das? Beachten Sie, dass dies nicht gefunden wird Subtypen von EntityCollection<TEntity>.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top