在Windows手机中保存当前用户会话

时间:2013-10-03 14:06:07

标签: windows-phone-7 session windows-phone-8 isolatedstorage

我正在开发Windows手机应用程序。它要求用户登录。 我在Windows phone app登录成功后尝试保存当前用户会话。

我正在使用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'无法序列化。请考虑使用DataContractAttribute属性对其进行标记,并使用DataMemberAttribute属性标记要序列化的所有成员。或者,您可以确保该类型是公共的并且具有无参数构造函数 - 然后将序列化该类型的所有公共成员,并且不需要任何属性。

我不知道为什么会出现这个错误?有人可以帮我解决这个错误吗?

1 个答案:

答案 0 :(得分:1)

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