我正在开发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属性标记要序列化的所有成员。或者,您可以确保该类型是公共的并且具有无参数构造函数 - 然后将序列化该类型的所有公共成员,并且不需要任何属性。
我不知道为什么会出现这个错误?有人可以帮我解决这个错误吗?
答案 0 :(得分:1)
在应用程序设置中保存时,它使用DataContractSerialiser来序列化您的对象,问题可能是您没有定义DataContractSerializer所需的参数less构造函数。只需添加一个即可解决您的问题。