コード例 #1
0
 public static ConnectivityMode DetectConnectivityModeForAutoDetect(Uri uri)
 {
     if (NetworkDetector.tcpConnectivityStatus == 3 && NetworkDetector.httpConnectivityStatus == 3)
     {
         NetworkDetector.Reset();
     }
     Exception[] exceptionArray = new Exception[2];
     if (NetworkDetector.IsNetTcpConnectivityAvailable(uri, out exceptionArray[0]))
     {
         return(ConnectivityMode.Tcp);
     }
     if (!NetworkDetector.IsHttpConnectivityAvailable(uri, out exceptionArray[1]))
     {
         Exception[] array = (
             from e in (IEnumerable <Exception>)exceptionArray
             where e != null
             select e).ToArray <Exception>();
         string reach = SRClient.UnableToReach(uri.Host, 9351, 9352);
         if ((int)array.Length <= 0)
         {
             throw Fx.Exception.AsError(new CommunicationException(reach), null);
         }
         throw Fx.Exception.AsError(new CommunicationException(reach, new AggregateException(array)), null);
     }
     return(ConnectivityMode.Http);
 }