2016-06-15 8 views
0

Ich habe eine Lösung mit drei Projekten,Singleton Klasse Hintergrund Dienstleistungen

  1. Hauptprojekt (UWP Application)
  2. Common (Klassenbibliothek)
  3. Hintergrunddienste (Windows-Laufzeitanwendung)

MainProject verweist sowohl auf Common- als auch auf Hintergrundservices und verweist auf Hintergrundservices.

Ich habe auch eine Singleton-Klasse in Common gespeichert. Die Singleton-Klasse funktioniert ordnungsgemäß, wenn sie vom MainProject referenziert wird. Wenn ich jedoch versuche, die Singleton-Klasse aus dem Hintergrunddienste-Projekt zu referenzieren, sind alle Eigenschaften innerhalb der Singleton-Klasse null.

Ich habe versucht, die GetInstance-Eigenschaft der Singleton-Klasse zu überprüfen. Eine neue Instanz wird nicht erstellt, wenn die Singleton-Klasse von Hintergrunddiensten referenziert wird, die Eigenschaften sind jedoch immer noch null.

Die Singletonklasse:

public class UserTokenInfo 
{ 
    private static UserTokenInfo instance = null; 
    private static object lockThis = new object(); 

    private UserTokenInfo() { } 

    public static UserTokenInfo GetInstance 
    { 
     get 
     { 
      lock (lockThis) 
      { 
       if (instance == null) 
        instance = new UserTokenInfo(); 

       return instance; 
      } 
     } 
    } 

    public string access_token { get; set; } 
    public string expiry { get; set; } 
    public string Email { get; set; } 

    public bool isTokenValid() 
    { 
     if (Convert.ToDateTime(expiry) > DateTime.Now) 
      return true; 
     return false; 
    } 

    public string FirstName { get; set; } 
    public string SecondName { get; set; } 
    public List<string> Topic { get; set; } = new List<string>(); 
    public List<string> Website { get; set; } = new List<string>(); 
} 

Antwort

0

aussehen wie Sie haben in Ihrer Anwendung zwei Instanz für ein gemeinsames Modul erstellt.

Versuchen Sie, die statische Bindung der Bibliothek von einem des Projekts auszuschließen und versuchen Sie es dann.

Verwenden Sie DLL/Referenz anstelle von statischen lib. Hoffe es hilft

+0

Hallo, danke für deine Antwort, könntest du bitte erklären, wie ich das in VS2015 machen würde –