我将对象存储在会话状态(使用本地会话状态服务器),类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.]
如何绕过它?
答案 0 :(得分:1)
根据错误消息,基类(Google.GData.Client.OAuth2Parameters
)看起来不可序列化,因此即使您使用Serializable
属性标记了类,但完整的类层次结构也不是。
您可能需要使用本身可序列化的bass类,或者如果您可以访问代码(可能不是?),请使Google.GData.Client.OAuth2Parameters
类可序列化。
请记住,'serializability'依赖于任何给定类的完整类型树 - 即所有基类和成员类也需要可序列化,以使封闭类真正可序列化。