The name of the file that gets stored is determined by the name of the type T specified in ObjectStorageHelper<T> or, if you want to specify multiple instances of T, you can specify your own file handle.

Retrieving an object
Retrieving that object thereafter is equally as easy, just two lines of code

[TestMethod]
public async void LoadObject()
{
//new up ObjectStorageHelper specifying that we want to interact with the Local storage foldervar objectStorageHelper = new ObjectStorageHelper<Poco>(StorageType.Local);
//Get the object from the storage folder
Poco myPoco = await objectStorageHelper.LoadAsync();
}

[TestMethod]
public async Task SaveAndLoadTwoObjectsOfSameTypeUsingDifferentHandles()
{
//Declare two instances of the same type. Notice how we only have one instance of ObjectStorageHelper<T>var poco = new Poco() { IntProp = 1, StringProp = "one" };
var anotherPoco = new Poco() { IntProp = 2, StringProp = "two" };
var osh = new ObjectStorageHelper<Poco>(StorageType.Local);
//Store them both then retrieve them both. In each case, use a different handle.
await osh.SaveAsync(poco, handle);
await osh.SaveAsync(anotherPoco, handle2);
var result = await osh.LoadAsync(handle);
var anotherResult = await osh.LoadAsync(handle2);
//Check that the second call to SaveASync() did not overwrite the object saved by first call to SaveAsync()
Assert.AreEqual(poco, result);
Assert.AreEqual(anotherPoco, anotherResult);
}