Проверьте, не задан ли вначале контекст активации,
public IsolatedStorageFile getIsolatedStorage() {
return AppDomain.CurrentDomain.ActivationContext == null
? IsolatedStorageFile.GetUserStoreForAssembly()
: IsolatedStorageFile.GetUserStoreForApplication();
}
, что указывало бы на то, что домен не имеет контекста активации, означающего, что идентификация приложения вызывающего абонента не может быть определена.
Я также виделдругая реализация
Ссылка ClickOnce и IsolatedStorage
, где они проверили System.Deployment.Application.ApplicationDeployment.IsNetworkDeployed
, чтобы определить, было ли приложение в данный момент нажатым после развертывания
public IsolatedStorageFile getIsolatedStorage() {
return System.Deployment.Application.ApplicationDeployment.IsNetworkDeployed
? IsolatedStorageFile.GetUserStoreForApplication()
: IsolatedStorageFile.GetUserStoreForAssembly();
}
В идеалеЯ бы также предложил инкапсулировать IsolatedStorage
за абстракцией, чтобы модульное тестирование также можно было проводить изолированно, без влияния на эффекты.