public IEntity GetDefaultMember(IType type)
{
// Search for a default member on this type or any of its non-interface basetypes
for (IType t = type; t != null; t = t.BaseType)
{
IEntity member = t.GetDefaultMember();
if (member != null) return member;
}
// Search for default members on the type's interfaces
var buffer = new Set<IEntity>();
foreach (IType interfaceType in type.GetInterfaces())
{
IEntity member = GetDefaultMember(interfaceType);
if (member != null) buffer.Add(member);
}
return Entities.EntityFromList(buffer);
}