asp.net - 如何验证我的 ASP.NET session 数据是否可以正确序列化?

标签 asp.net session serialization

我正在尝试从保存 session 数据“InProc”切换到“StateServer”。

为此,我将一堆类标记为[Serialized],并重写了一些之前无法序列化的类,并将一些不应该序列化的值标记为[NonSerialized]。

现在我的问题是,我没有得到编译时错误、异常或任何其他框架问题的指示,而是返回 session ,其中存储的一些值被更改为空值,无论是在 session 本身或 session 中包含的对象内部。

为什么没有错误提示?

什么原因导致空值?

如何检测 session 的序列化是否正确?

谢谢

最佳答案

听起来您需要一些单元测试来确认序列化是否正常工作。

[Serializable]
public class SomeClass {
    public string SomeValue1;
    public string SomeValue2;
}

class Program {
    static void Main(string[] args) {
        var value1 = new SomeClass() { SomeValue1 = "Hello", SomeValue2 = "World" };
        var ms = new MemoryStream();
        var formatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
        formatter.Serialize(ms, value1);
        ms.Position = 0;
        var value2 = (SomeClass)formatter.Deserialize(ms);
        Debug.Assert(value1.SomeValue1 == value2.SomeValue1);
        Debug.Assert(value1.SomeValue2 == value2.SomeValue2);
    }
}

关于asp.net - 如何验证我的 ASP.NET session 数据是否可以正确序列化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4826370/

相关文章:

asp.net - 如何连接到本地 SQL Server 数据库?

c# - 直接编辑模式下的 Gridview

javascript - HtmlOptions.OnLoadScript 无法使用 ABCPdf 创建 PDF

asp.net - Inno Setup IIS 安装和配置

c# - 从一个 Controller 调用方法到另一个 Controller 时 session 为空...MVC

c# - OnSerializingAttribute 与 ISerializable

java - Springboot SessionListener 函数(sessionCreated()、sessionDestroyed())未调用

session - 使用 ColdFusion 创建持久登录系统

c# - JsonConvert 序列化/反序列化锯齿状数组并启用 TypeNameHandling

c++ - C++中保存复杂对象的方法