|
using System;
using System.IO;
using System.IO.IsolatedStorage;
using System.Net;
using System.Runtime.Serialization;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
namespace J2i.Net.VoiceRecorder.Utility
{
public class DataSaver<MyDataType>
{
private string TargetFolderName { get; set; }
private DataContractSerializer _mySerializer;
private IsolatedStorageFile _isoFile;
IsolatedStorageFile IsoFile
{
get
{
if (_isoFile == null)
_isoFile = System.IO.IsolatedStorage.IsolatedStorageFile.GetUserStoreForApplication();
return _isoFile;
}
}
public DataSaver()
{
_mySerializer = new DataContractSerializer(typeof(MyDataType));
TargetFolderName = "data";
}
public void SaveMyData(MyDataType sourceData, String targetFileName)
{
string TargetFileName = targetFileName;//String.Format("{0}/{1}", TargetFolderName, targetFileName);
if (!IsoFile.DirectoryExists(TargetFolderName))
IsoFile.CreateDirectory(TargetFolderName);
try
{
using (var targetFile = IsoFile.CreateFile(TargetFileName))
{
_mySerializer.WriteObject(targetFile, sourceData);
}
}
catch (Exception e)
{
IsoFile.DeleteFile(TargetFileName);
}
}
public MyDataType LoadMyData(string sourceName)
{
MyDataType retVal = default(MyDataType);
string TargetFileName = sourceName;// String.Format("{0}/{1}", TargetFolderName, sourceName);
if (IsoFile.FileExists(TargetFileName))
using (var sourceStream = IsoFile.OpenFile(TargetFileName, FileMode.Open))
{
retVal = (MyDataType)_mySerializer.ReadObject(sourceStream);
}
return retVal;
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.