protected virtual void OnConnectionStatus(object sender, ConnectionStatus status, ref RspUserLoginField userLogin, int size1)
 {
     if (size1 > 0)
     {
         if (userLogin.RawErrorID != 0)
         {
             (sender as XApi).Log.Info("{0}:{1}", status, userLogin.ToFormattedStringShort());
         }
         else
         {
             (sender as XApi).Log.Info("{0}:{1}", status, userLogin.ToFormattedStringLong());
         }
     }
     else
     {
         (sender as XApi).Log.Info("{0}", status);
     }
     if (status == ConnectionStatus.Logined)
     {
         TradingDay = userLogin.TradingDay;
     }
 }
        private void OnConnectionStatus_callback(object sender, ConnectionStatus status, ref RspUserLoginField userLogin, int size1)
        {
            if(size1>0)
            {
                if(userLogin.RawErrorID != 0 )
                {
                    (sender as XApi).Log.Info("{0}:{1}", status, userLogin.ToFormattedStringShort());
                }
                else
                {
                    (sender as XApi).Log.Info("{0}:{1}", status, userLogin.ToFormattedStringLong());
                }
            }
            else
            {
                (sender as XApi).Log.Info("{0}", status);
            }

            switch (status)
            {
                case ConnectionStatus.Done:
                    OnConnectionStatus_Done(sender, status);
                    break;
                case ConnectionStatus.Disconnected:
                    OnConnectionStatus_Disconnected(sender, status, ref userLogin);
                    break;
            }
            // 断线重连的功能,可能正好与连接上的时间在同一时点,所以想法重新计时
            _Timer.Enabled = false;
            _Timer.Enabled = true;
        }