/// <summary> /// 获取已注册的命令元数据 /// 获取失败返回null /// </summary> /// <param name="commandUniqueName">命令全局名</param> /// <returns>命令元数据</returns> public ServiceCommandTypeInfo TryGetCommand(string commandUniqueName) { ServiceCommandTypeInfo commandInfo = null; this.serviceCommandDic.TryGetValue(commandUniqueName, out commandInfo); return(commandInfo); }
/// <summary> /// 注册命令元数据 /// </summary> /// <param name="cmdInfo">命令元数据</param> /// <returns>是否注册成功</returns> public bool RegisterCommand(ServiceCommandTypeInfo cmdInfo) { if (!this.isCmdInfoValidated(cmdInfo)) { return(false); } bool isSuccessed = this.serviceCommandDic.TryAdd(cmdInfo.ServiceCommandUniqueName.FullServiceUniqueName, cmdInfo); return(isSuccessed); }
/// <summary> /// 注册服务命令 /// </summary> /// <param name="cmdInfo">服务命令信息</param> /// <returns>是否注册成功</returns> public bool RegisterCommand(ServiceCommandTypeInfo cmdInfo) { lock (locker) { ServiceAssemblyInfo serviceAssembly = this.getServiceAssemblyInfo(cmdInfo.ServiceCommandUniqueName.ServiceAssemblyName); if (serviceAssembly != null) { return(serviceAssembly.RegisterCommand(cmdInfo)); } return(false); } }
/// <summary> /// 是否本地服务命令 /// </summary> /// <param name="targetServiceName">服务名</param> /// <returns></returns> public bool IsLocalServiceCommand(ServiceUniqueNameInfo serviceUniqueName, out ServiceCommandTypeInfo localCommandInfo) { localCommandInfo = null; ServiceAssemblyInfo serviceAssemblyInfo = this.getServiceAssemblyInfo(serviceUniqueName.ServiceAssemblyName); if (serviceAssemblyInfo != null) { ////是否本地ServiceBus包括的服务程序集 //bool isServiceAssemblyLocal = serviceAssemblyInfo.GetServiceBusInfo() // .Any(busInfo => busInfo.Equals(this.LocalBusServer)); //if (!isServiceAssemblyLocal) // return false; localCommandInfo = serviceAssemblyInfo.TryGetCommand(serviceUniqueName); if (localCommandInfo != null) { return(true); } } return(false); //服务程序集不存在 }
private bool isCmdInfoValidated(ServiceCommandTypeInfo cmdInfo) { if (cmdInfo == null) { return(false); } if (cmdInfo.ServiceCommandUniqueName == null || string.IsNullOrWhiteSpace(cmdInfo.ServiceCommandUniqueName.FullServiceUniqueName)) { return(false); } if (cmdInfo.CommandType == null || cmdInfo.CommandResultType == null) { return(false); } if (cmdInfo.CommandHandlerFactory == null) { return(false); } return(true); }
/// <summary> /// 是否本地服务命令 /// </summary> /// <param name="targetServiceName">服务名</param> /// <returns></returns> public bool IsLocalServiceCommand(ServiceUniqueNameInfo serviceUniqueName) { ServiceCommandTypeInfo localCommandInfo = null; return(this.IsLocalServiceCommand(serviceUniqueName, out localCommandInfo)); }