gpt4 book ai didi

c# - 如何使用 IsolatedStorageFile.GetUserStoreForApplication()

转载 作者:行者123 更新时间:2023-11-30 22:58:38 26 4
gpt4 key购买 nike

我有一个 clickonce 应用程序,它在生产环境中运行良好,方法是:

IsolatedStorageFile.GetUserStoreForApplication()

执行成功。当我尝试调试我的应用程序时,它因 IsolatedStorageException 而崩溃,因为“无法确定调用者的应用程序身份。”as described here

All assemblies associated with an application use the same isolated store when using this method. This method can be used only when the application identity can be determined - for example, when the application is published through ClickOnce deployment or is a Silverlight-based application. If you attempt to use this method outside a ClickOnce or Silverlight-based application, you will receive an IsolatedStorageException exception, because the application identity of the caller cannot be determined.

我的问题是如何无异常地使用 IsolatedStorageFile.GetUserStoreForApplication() 和调试应用程序?

  • 可能会做一些检查?
  • 或使用自定义应用程序标识?
  • 或使用 IsolatedStorageFile.GetEnumerator 获取可用存储?

最佳答案

首先检查激活上下文是否为空,

public IsolatedStorageFile getIsolatedStorage() {
return AppDomain.CurrentDomain.ActivationContext == null
? IsolatedStorageFile.GetUserStoreForAssembly()
: IsolatedStorageFile.GetUserStoreForApplication();
}

这表明该域没有激活上下文,这意味着无法确定调用者的应用程序身份。

我还看到了另一个实现

引用 ClickOnce and IsolatedStorage

他们检查 System.Deployment.Application.ApplicationDeployment.IsNetwor‌ kDeployed 以确定应用程序当前是否在部署后单击

public IsolatedStorageFile getIsolatedStorage() {
return System.Deployment.Application.ApplicationDeployment.IsNetwor‌​kDeployed
? IsolatedStorageFile.GetUserStoreForApplication()
: IsolatedStorageFile.GetUserStoreForAssembly();
}

理想情况下,我还建议将 IsolatedStorage 封装在抽象之后,这样单元测试也可以在隔离的情况下进行,而不会产生影响。

关于c# - 如何使用 IsolatedStorageFile.GetUserStoreForApplication(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52910720/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com