public override IEnumerable<PropertySpec> LoadProperties(TypeSpec typeSpec)
{
if (typeSpec is ComplexType || typeSpec is ResourceType)
{
var propertiesFromNonMappedInterfaces = typeSpec.Type.IsInterface
? typeSpec.Type.GetInterfaces().Where(x => !Filter.TypeIsMapped(x)).SelectMany(
x => Filter.GetAllPropertiesOfType(x, BindingFlags.Instance | BindingFlags.Public))
: Enumerable.Empty<PropertyInfo>();
return Filter.GetAllPropertiesOfType(typeSpec,
BindingFlags.Instance | BindingFlags.Static
| BindingFlags.Public
| BindingFlags.NonPublic)
.Concat(propertiesFromNonMappedInterfaces)
.Where(x => Filter.PropertyIsIncluded(typeSpec.Type, x))
.Select(x => WrapProperty(typeSpec, x));
}
return base.LoadProperties(typeSpec);
}