0

我在会话状态中存储一个对象(使用本地会话状态服务器),类 def 是:

 [Serializable]
 public class ExtendedOAuth2Parameters : OAuth2Parameters

但该服务仍在报告:

Unable to serialize the session state. In 'StateServer' and 'SQLServer' mode, ASP.NET will serialize the session state objects, and as a result non-serializable objects or MarshalByRef objects are not permitted.

[SerializationException: Type 'Google.GData.Client.OAuth2Parameters' in Assembly 'Google.GData.Client, Version=2.1.0.0, Culture=neutral, PublicKeyToken=04a59ca9b0273830' is not marked as serializable.]

如何绕过它?

4

1 回答 1

1

根据错误消息,看起来基类 ( Google.GData.Client.OAuth2Parameters) 是不可序列化的,因此即使您使用Serializable属性标记了类,但完整的类层次结构不是。

您要么需要使用本身可序列化的低音类,要么如果您有权访问代码(可能没有?),请使Google.GData.Client.OAuth2Parameters类可序列化。

请记住,“可序列化”取决于任何给定类的完整类型树——即所有基类和成员类也需要可序列化,以使封闭类真正可序列化。

于 2012-12-06T11:02:10.290 回答