public virtual IEnumerable<string> GetAllMemberNames( object target )
{
if ( target == null )
{
return Enumerable.Empty<string>();
}
return GetDeclaredMemberNames( target )
.Union( GetDynamicMemberNames( target ), StringComparer.OrdinalIgnoreCase );
}