修改命名空间protected和private的guard逻辑