Sterling数据库silverlight ArgumentOutOfRangeException

时间:2013-06-27 13:51:31

标签: silverlight exception sterling-db

我们正在使用英镑开发一个浏览器外的应用程序,我们有以下情况:

  1. 可以使用快捷方式打开应用
  2. 如果我们打开编辑文件(具有特定扩展名),应用程序就会打开。
  3. 问题是在案例2中打开的实例似乎有不同的IsolatedStorage并且数据没有被共享,所以我们尝试执行以下操作

     var folder = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "\\MyApp\\";
     IsolatedStorageDriver driver = new IsolatedStorageDriver(folder,true);
            driver.DatabaseName = "sterling";
            Database = _engine.SterlingDatabase.RegisterDatabase<OurInternalDB>(driver);
    

    这会产生以下异常:

      

    System.ArgumentOutOfRangeException未被用户代码处理     消息=指定的参数超出了有效值的范围。   参数名称:basePath     堆栈跟踪:          在Wintellect.Sterling.IsolatedStorage.PathProvider._ContractForBasePath(String basePath)          在Wintellect.Sterling.IsolatedStorage.PathProvider.GetKeysPath(String basePath,String databaseName,Type tableType,ISterlingDriver driver)          在Wintellect.Sterling.IsolatedStorage.IsolatedStorageDriver.DeserializeKeys(Type type,Type keyType,IDictionary dictionary)          在Wintellect.Sterling.Keys.KeyCollection 2._DeserializeKeys() at Wintellect.Sterling.Keys.KeyCollection 2..ctor(ISterlingDriver驱动程序,Func 2 resolver) at Wintellect.Sterling.Database.TableDefinition 2..ctor(ISterlingDriver驱动程序,Func 2 resolver, Func 2键)          在Wintellect.Sterling.Database.BaseDatabaseInstance.CreateTableDefinition [T,TKey](Func`2 keyFunction)          在Waf.Dal.Sterling.Database.OURInternalDB.RegisterTables()          在Wintellect.Sterling.Database.BaseDatabaseInstance.PublishTables(ISterlingDriver驱动程序)          在Wintellect.Sterling.Database.SterlingDatabase.RegisterDatabase [T](ISterlingDriver驱动程序)          在Waf.Dal.SterlingService.Starting()          在Waf.Dal.Factory.Sterling.InitializeDatabase()          在Waf.Dal.AireaStorageHelper.InitializeDatabase()          在Waf.App.App..ctor()     InnerException:

    更新:我尝试替换文件夹值

    var folder = (Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "\\MyApp\\").Replace("\\","/"); 
    

    异常消失,但我原来的问题仍然存在,就像应用程序的2个实例使用不同的IsolatedStorage一样。

1 个答案:

答案 0 :(得分:1)

当我进行更新时,这解决了我使用隔离存储驱动程序的问题:

var folder = (Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "\\MyApp\\").Replace("\\","/"); 

但是,我了解到同一应用程序的实例之间不共享隔离存储。

希望这对某人有用