public static void WriteCurrentVersionToRegistry()
 {
     using (var registryKey = RegistryAccess.OpenRegistryKey())
     {
         var publishedVersion = GetPublishedVersion().ToString();
         registryKey.SetValue("LastLaunchedVersion", publishedVersion);
     }
 }
예제 #2
0
        public static void SaveSettings(Settings settings)
        {
            using (var s = new MemoryStream())
            {
                using (var registryKey = RegistryAccess.OpenRegistryKey())
                {
                    var serializer = new DataContractJsonSerializer(settings.GetType());
                    serializer.WriteObject(s, settings);

                    var value = Encoding.UTF8.GetString(s.ToArray());

                    registryKey.SetValue("Settings", value);
                }
            }
        }
        public static bool CurrentVersionIsDifferentFromLastRunVersion()
        {
            using (var registryKey = RegistryAccess.OpenRegistryKey())
            {
                var value            = registryKey.GetValue("LastLaunchedVersion", "1.0.0.0") as string;
                var publishedVersion = GetPublishedVersion().ToString();

                if (value == publishedVersion)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
        }
예제 #4
0
 public static T LoadSettings <T>()
     where T : Settings, new()
 {
     try
     {
         using (var registryKey = RegistryAccess.OpenRegistryKey())
         {
             var value = registryKey.GetValue("Settings") as string;
             using (var memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(value)))
             {
                 var serializer = new DataContractJsonSerializer(typeof(T));
                 return(serializer.ReadObject(memoryStream) as T);
             }
         }
     }
     catch
     {
         return(new T());
     }
 }