Ste*_*ack 4 c# asp.net viewstate
我正在使用EWS开发我的电子邮件客户端.我发现如果我将ItemId存储在viewstate中会导致异常,说:
在程序集"Microsoft.Exchange.WebServices,Version = 14.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35"中键入"Microsoft.Exchange.WebServices.Data.ItemId"未标记为可序列化.
如果我ItemId像字符串一样存储:
ViewState["itemId"] = id.ToString();
Run Code Online (Sandbox Code Playgroud)
然后试着回头
ItemId id = (ItemId)ViewState["itemId"];
Run Code Online (Sandbox Code Playgroud)
它说我无法从字符串转换为ItemId.任何的想法?
您正在存储字符串并期待ItemId.你应该存储为
ItemId itemId = new ItemId();
ViewState["itemId"] = itemId;
Run Code Online (Sandbox Code Playgroud)
但是,由于ItemId不可串行化,因此无法存储.要存储它,请使您的可序列化类继承自ItemId并覆盖所有成员并将其存储在ViewState中
[Serializable]
public class MyItemId: ItemId {
// override all properties
}
Run Code Online (Sandbox Code Playgroud)
像这样存储
MyItemId itemId = new MyItemId();
ViewState["itemId"] = itemId;
Run Code Online (Sandbox Code Playgroud)
并检索
MyItemId id=(MyItemId)ViewState["itemId"];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24769 次 |
| 最近记录: |