public List<ISourceOrigin> GetMembers(bool constructor)
{
var namespaceEntity = entity as INamespace;
var instance = constructor;
if (entity is IMethod)
{
namespaceEntity = ((IMethod)entity).ReturnType;
instance = true;
}
else if (entity is ITypedEntity && !(entity is IType))
{
namespaceEntity = ((ITypedEntity)entity).Type;
instance = true;
}
var members = new List<IEntity>(TypeSystemServices.GetAllMembers(namespaceEntity));
// remove any static members for instances, and any instance members for types
members.RemoveAll(e =>
{
if (excludedMembers.Contains(e.Name)) return true;
if (e is NamespaceEntity || e is NullNamespace || e is SimpleNamespace) return false;
if (e is ExternalType) return false;
var member = (IMember)e;
if (!member.IsPublic) return true;
return (instance && member.IsStatic) || (!instance && !member.IsStatic);
});
return ConvertEntitiesToSourceOrigins(members);
}