从IsolatedStorage中不受限制地获取数据
本文关键字:获取 数据 受限制 IsolatedStorage | 更新日期: 2023-09-27 18:04:49
我试着测试一个wpf应用程序的隔离存储,我想要从两个应用程序中为相同的隔离存储getData和InsertData。我尝试了不同的getStore(…),但没有工作。
IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.Machine | IsolatedStorageScope.Assembly, null, null);
private static void LoadData()
{
IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.Machine | IsolatedStorageScope.Assembly, null, null);
if (isoStore.GetFileNames(filename).Length == 0)
{
// File not exists. Let us NOT try to DeSerialize it.
return;
}
// Read the stream from Isolated Storage.
Stream stream = new IsolatedStorageFileStream(filename, FileMode.OpenOrCreate, isoStore);
if (stream != null)
{
try
{
// DeSerialize the Dictionary from stream.
IFormatter formatter = new BinaryFormatter();
Dictionary<string, Object> appData = (Dictionary<string, Object>)formatter.Deserialize(stream);
// Enumerate through the collection and load our Dictionary.
IDictionaryEnumerator enumerator = appData.GetEnumerator();
while (enumerator.MoveNext())
{
appDictionary[enumerator.Key.ToString()] = enumerator.Value;
}
}
finally
{
stream.Close();
}
}
}
问候,马修
如果你仔细阅读一下你正在使用的技术,你就会明白为什么你不能访问其他用户的数据…线索就在它的名字里:隔离存储。MSDN上的隔离类型页面:
对隔离存储的访问始终限制在创建该存储的用户。
…通过结合用户、域和程序集标识的概念,隔离存储可以通过以下方式隔离数据,每种方式都有自己的使用场景:
•按用户和组件进行隔离
•按用户、域和程序集进行隔离
有关详细信息,请参阅MSDN上的隔离存储页面。