public void Handle(byte[] cmd, string cmdTypeFullName) { try { HandleCore(); } catch (Exception e) { Logger.ErrorException("处理命令时出现异常。 cmdType : {cmdType} resultType : {resultType} data : {cmd}", e); throw; } void HandleCore() { WriteDiagnostics(() => cmd); using (var robotSession = MahuaRobotManager.Instance.CreateSession()) { var lifetimeScope = robotSession.LifetimeScope; var center = lifetimeScope.Resolve <ICommandCenter>(); var cmdType = GetMahuaType(cmdTypeFullName); var handler = VoidResultHandlers .GetOrAdd(cmdType, _commandCenterHandleMethod.MakeGenericMethod(cmdType).Invoke); handler(center, new[] { GlobalCache.CrossDoaminSerializer.Deserialize(cmd, cmdType) }); } } }
public void Handle(byte[] cmd, string cmdTypeFullName) { WriteDiagnostics(() => cmd); using (var robotSession = MahuaRobotManager.Instance.CreateSession()) { var lifetimeScope = robotSession.LifetimeScope; var center = lifetimeScope.Resolve <ICommandCenter>(); var cmdType = GetMahuaType(cmdTypeFullName); var handler = VoidResultHandlers .GetOrAdd(cmdType, _commandCenterHandleMethod.MakeGenericMethod(cmdType).Invoke); handler(center, new[] { GlobalCache.CrossDoaminSerializer.Deserialize(cmd, cmdType) }); } }
public void Handle(byte[] cmd, string cmdTypeFullName) { WriteDiagnostics(() => cmd); using (var beginLifetimeScope = _container.BeginLifetimeScope()) { SetContainer(beginLifetimeScope); var center = beginLifetimeScope.Resolve <ICommandCenter>(); var cmdType = GetMahuaType(cmdTypeFullName); var handler = VoidResultHandlers .GetOrAdd(cmdType, _commandCenterHandleMethod.MakeGenericMethod(cmdType).Invoke); handler(center, new[] { GlobalCache.CrossDoaminSerializer.Deserialize(cmd, cmdType) }); } }