0
4

2 回答 2

2

我们有一个类似的问题:一个文件在我们所有的测试机器上都正确地反序列化了数据合约。但是,在一台特定的客户机器上,它因错误而失败

ClassName不能被序列化。考虑用DataContractAttribute属性标记它,并用属性标记你想要序列化的所有成员DataMemberAttribute

结果发现客户运行的是 .NET Framework 3.0,而我们所有的测试都是在 .NET Framework 3.5 SP1 上完成的。

数据协定序列化程序的行为似乎在 .NET Framework 3.0 和 .NET Framework 3.5 中有所不同。在 3.5 中,如果一个类是 XML 可序列化的,那么它也自动是数据协定可序列化的。但是,.NET Framework 3.0 并非如此——该类必须用[DataContract]or装饰[Serializable]

希望这可以帮助!

于 2010-06-04T05:00:11.570 回答
0

I believe the problem is that some of the machine did not have 3.5 SP1 on them.

于 2010-09-30T09:10:16.710 回答