我正在尝试从保存 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/