Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows phone 7 在windows phone中保存当前用户会话_Windows Phone 7_Session_Windows Phone 8_Isolatedstorage - Fatal编程技术网

Windows phone 7 在windows phone中保存当前用户会话

Windows phone 7 在windows phone中保存当前用户会话,windows-phone-7,session,windows-phone-8,isolatedstorage,Windows Phone 7,Session,Windows Phone 8,Isolatedstorage,我正在开发windows phone应用程序。它需要用户登录。 在windows phone应用程序中成功登录后,我正在尝试保存当前用户会话 我正在使用IsolatedStorageSettings.ApplicationSettings保存当前用户会话 这是代码 LoginDO objLoginDO = default(LoginDO); if (dtbUserDetails != null) {

我正在开发windows phone应用程序。它需要用户登录。 在windows phone应用程序中成功登录后,我正在尝试保存当前用户会话

我正在使用
IsolatedStorageSettings.ApplicationSettings
保存当前用户会话

这是代码

            LoginDO objLoginDO = default(LoginDO);
            if (dtbUserDetails != null)
            {
                objLoginDO = new LoginDO(dtbUserDetails.UserID,
                                         dtbUserDetails.FirstName,
                                         dtbUserDetails.LastName,
                                         dtbUserDetails.UserName,
                                         dtbUserDetails.DisplayName,
                                         Convert.ToDateTime("01/01/2010"),
                                         "","", Convert.ToDateTime(DateTime.Now),
                                         dtbUserDetails.MobileNumber,
                                         dtbUserDetails.Location);

                UserControlBaseClass u = new UserControlBaseClass();
                //PhoneApplicationService.Current.State[u.LOGIN_DO] = objLoginDO;
                IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;                    
                settings[u.LOGIN_DO] = objLoginDO;
                settings.Save();
             }
在这里,当编译器到达
settings.Save()

错误

无法序列化类型“Demo.Classes.LoginDO”。考虑使用DATACONTractAttor属性对其进行标记,并标记要使用DATAMEMBAREATE属性序列化的所有成员。或者,您可以确保该类型是公共的,并且具有无参数构造函数-然后将序列化该类型的所有公共成员,并且不需要任何属性


我不明白为什么我会犯这个错误?有人能帮我解决这个错误吗?

在应用程序设置中保存时,使用DataContractSerialiser来序列化对象,问题可能是您没有定义DataContractSerializer所需的无参数构造函数。只要加上一个,你就能解决你的问题

是否需要定义无参数构造函数。我刚刚从构造函数中删除了参数。我的问题解决了。如果你不想拥有一个无参数构造函数,那么你可以自己将类序列化为一个字符串,并将该字符串保存到AppSettings中,或者在清除我的deactivate会话值时,在类和每个属性的DataMember上添加DataContract属性。当我登录到应用程序时,我按下emulator的home键,然后我再次启动我的应用程序,所以那个时我无法重定向到我的主页。它将再次要求输入用户名和密码。重新启动应用程序时,PhoneApplicationService.Current.State将被清除,但不会被隔离存储设置。应用设置。