Comment stocker un objet dans le viewstate?
Je suis en utilisant EWS pour développer mon client de messagerie. J'ai trouvé que si je magasin ItemId dans viewstate qu'il va provoquer une exception dit:
Type " De Microsoft.Exchange.WebServices.Les données.ItemId "dans l'Assembly" Microsoft.Exchange.WebServices, Version=14.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 " n'est pas marqué comme sérialisable.
Si je magasin ItemId
comme une chaîne de caractères comme:
ViewState["itemId"] = id.ToString();
et puis essayez de jeter en arrière,
ItemId id = (ItemId)ViewState["itemId"];
il dit je ne peux pas convertir de la chaîne d' ItemId
. Une idée?
OriginalL'auteur Steven Zack | 2011-09-27
Vous devez vous connecter pour publier un commentaire.
Que le message d'erreur indique, vous ne pouvez pas stocker un objet dans le viewstate, sauf si elle est marquée comme serializable.
Regardant la documentation ici, il semble que la ItemId classe a un id unique de la propriété, qui est une chaîne, et un constructeur qui prend une chaîne de caractères 'id unique paramètre.
Oui, pouvez-vous stocker l'id unique dans le viewstate, et la régénération de l'objet à l'aide du constructeur?
OriginalL'auteur Luke Girvin
Avez-vous essayé:
http://msdn.microsoft.com/en-us/library/microsoft.exchange.webservices.data.itemid.itemid(EXCHG.80).aspx
OriginalL'auteur Wiktor Zychla
Vous êtes le stockage de corde et attend ItemId. Vous devez les stocker en tant que
Cependant, depuis ItemId n'est pas seriaziable, il ne peut pas être stockée. Pour la stocker de faire de votre classe sérialisable hérité de ItemId et remplacer tous les membres et de les stocker dans ViewState
Store, comme ce
et récupérer
Réponse détaillée est mise à jour
Changé de -1 à +1, en raison de la mise à jour.
OriginalL'auteur hungryMind
Vous ne peut pas le stocker dans ViewState.
Cependant, vous pourriez probablement la stocker dans la Session, car il utilise le binaire formateur.
ViewState est sérialisé avec la LosFormatter classe.
OriginalL'auteur MatteKarla