我正在为Windows Phone在VS2010中编写Silverlight Pivot应用程序。我刚刚添加了msdnhere中的示例代码。现在每当我重新加载设计器时,就会出现一个异常:
无法确定调用方的应用程序标识。
在system.io.isolatedstorage.isolatedstorage.initstore(isolatedstorage scope scope,appevidencetype类型)
在system.io.isolatedstorage.isolatedstoragefile.getstore(isolatedstorage scope scope,类型applicationevidencetype)
在system.io.isolatedstorage.isolatedstoragesettings.get_applicationsettings()
在C:..\settings.cs:第34行中设置sample.appsettings..ctor()
这是visual studio/windows phone sdk中的一个bug吗?
这是第34行构造函数中的代码:

public AppSettings()
    {
        // Get the settings for this application.
        try
        {
            settings = IsolatedStorageSettings.ApplicationSettings;
        }
        catch (System.Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

我添加了尝试捕捉,看看发生了什么。
我怀疑visual studio(调用方)试图运行代码,但没有关联应用程序(应用程序标识),因此失败。也许吧?
有什么想法吗?

最佳答案

由于在visual studio或expression blend中访问isolatedstoragesettings是无效的,因此需要对该代码添加一个DesignerProperties.IsInDesignTool检查。

if (!System.ComponentModel.DesignerProperties.IsInDesignTool)
{
     settings = IsolatedStorageSettings.ApplicationSettings;
}

08-28 07:06