2016-04-28 13 views
0

Ich habe ein Problem mit INetwork von XLabs.Platform. Ich erhalte System.NullReferenceException. Ich bin mir nicht sicher, ob das Problem ähnlich zu this ist, wo ich INetwork initialisieren muss. Da ich Xamarin jedoch sehr neu bin, habe ich keine Ahnung, wie ich den IOC-Container einrichten soll. Ich würde das gerne plattformübergreifend machen (ich möchte plattformspezifischen Code vermeiden, wenn ich es vermeiden kann). Vielen Dank!!Wie kann ich INetwork in Xamarin Forms XLabs verwenden?

Code:

using XLabs.Ioc; 
using XLabs.Platform; 
... 
namespace XXX 
{ 
    class XXX 
    { 
    public static bool isOnline() 
    { 

     var networkservice = DependencyService.Get<XLabs.Platform.Services.INetwork>(); 
     var status = networkservice.InternetConnectionStatus(); 
     return (
      (status.Equals(XLabs.Platform.Services.NetworkStatus.ReachableViaCarrierDataNetwork)) 
      || (status.Equals(XLabs.Platform.Services.NetworkStatus.ReachableViaWiFiNetwork)) 
      || (status.Equals(XLabs.Platform.Services.NetworkStatus.ReachableViaUnknownNetwork))); 
    } 

} 

} 

PS Die Dokumentation für XLabs.Platform Verwendung ist veraltet. Die (scheinbar) vorher funktionierende Erreichbarkeitsschnittstelle funktioniert nicht mehr. Denken Sie daran, stattdessen this zu verwenden. This ist ein Ansatz, der plattformübergreifenden Code erfordert. Not going to use this als der Autor selbst dissen die Vorgehensweise.

Antwort

1

Wenn Sie überprüfen wollen, ob es eine Internet-Verbindung ist, würde ich vorschlagen Connectivity Plugin (Xamarin Component) zu verwenden. Nach dem Hinzufügen der Xaamrin-Komponente können Sie überprüfen, ob eine Internetverbindung von PCL/Shared-Projekt wie unten verfügbar ist

+0

Das ist, was ich getan habe – heights1976

0

Sie das IOK füllen durch Zugabe dieses Attribut:

[assembly: Xamarin.Forms.Dependency(typeof(NameOfClassImplementingAnInterface))]