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) });
     }
 }