/// <summary> /// 注销TCP服务信息 /// </summary> /// <param name="identity"></param> /// <param name="services"></param> /// <param name="serviceName"></param> /// <returns></returns> private bool removeRegister(indexIdentity identity, services services, ref hashString serviceName) { services.RemovePerpService(identity); if (removeRegister(identity, services)) { if (services.Hosts.Length == 0) { services.IsSingle = false; foreach (keyValue <indexIdentity, service> perpService in services.GetPerpServices()) { if (register(perpService.Key, perpService.Value, services, ref serviceName).State != registerState.Success) { break; } } if (services.Hosts.Length == 0) { serviceCache.Remove(serviceName); appendLog(new log { Type = log.type.RemoveServiceName, Services = new services { Name = services.Name } }); } return(true); } else { appendLog(new log { Type = log.type.HostChanged, Services = new services { Name = services.Name, Hosts = services.Hosts.copy() } }); } } return(false); }