예제 #1
0
        /// <summary>
        /// Loads settings
        /// </summary>
        /// <param name="file">The file.</param>
        /// <param name="fileStorage">The file storage.</param>
        /// <returns></returns>
        public static async Task<GameSettingsModel> Load(string file, IFileStorage fileStorage)
        {
            string settingsXml = await fileStorage.LoadFileTextAsync(file);
            if (string.IsNullOrEmpty(settingsXml))
            {
                return null;
            }

            using (MemoryStream stream = new MemoryStream())
            {
                byte[] data = Encoding.UTF8.GetBytes(settingsXml);
                stream.Write(data, 0, data.Length);
                stream.Position = 0;
                DataContractSerializer serializer = new DataContractSerializer(typeof(GameSettingsModel));
                GameSettingsModel settings = serializer.ReadObject(stream) as GameSettingsModel;
                return settings;
            }
        }