A través de la reflexión, ¿hay alguna manera de que mire el tipo contenido de la lista genérica para ver de qué tipo es la colección? Por ejemplo:Obtener contenido tipo en una lista <T> a través de la reflexión?
Tengo un simple conjunto de objetos de negocio que se derivan de una interfaz, como esto:
public interface IEntityBase{}
public class BusinessEntity : IEntityBase
{
public IList<string> SomeStrings {get; set;}
public IList<ChildBusinessEntity> ChildEntities { get; set;}
}
public class ChildBusinessEntity : IEntityBase{}
En el caso en el que estoy iteración a través de las propiedades de BusinessEntity través de la reflexión, habría una Cómo puedo ver si los objetos anidados dentro de esas listas derivan de IEntityBase?
Pseudo codificado (mal) de esta manera:
foreach(PropertyInfo info in typeof(BusinessEntity).GetProperties())
{
if(info.PropertyType is GenericIList &&
TheNestedTypeInThisList.IsAssignableFrom(IEntityBase)
{
return true;
}
}
opción Sólo he oído hasta ahora, que funciona, sería la de sacar el primer elemento de esa lista, a continuación, busque en su tipo . ¿Alguna manera más fácil (especialmente porque no se puede garantizar que la Lista no esté vacía)?
Dupe: http://stackoverflow.com/questions/528546/type-getinterface-and-nested-types –
No es una víctima: que la pregunta de preguntar sobre los tipos anidados, mientras que éste (a pesar de la título) parece estar preguntando sobre un tipo genérico. – ChrisW
Vaya, tienes razón, mi mal: P –