单例类后台服务

时间:2016-06-15 12:45:39

标签: c# windows-runtime singleton background-task

我有一个包含3个项目的解决方案,

  1. MainProject(UWP应用程序)
  2. 普通(班级图书馆)
  3. 后台服务(Windows运行时应用程序)
  4. MainProject引用Common和Background Services以及后台服务引用Common。

    我还有一个存储在Common中的单例类。单例类在从MainProject引用时可以正常工作,但是当我尝试从后台服务项目中引用单例类时,单例类中的所有属性都为null。

    我试过检查单例类的GetInstance属性。从Background服务引用单例类时,不会创建新实例,但属性仍为空。

    单身人士课程:

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

1 个答案:

答案 0 :(得分:0)

看起来您已在应用程序中为公共模块创建了两个实例。

尝试从项目之一中排除库的静态绑定,然后尝试。

使用DLL /引用而不是静态lib。希望它会有所帮助