2009-12-31 119 views
1
System.Runtime.Serialization.SerializationException: 
Type 'System.Threading.Thread' in Assembly 'mscorlib, Version=2.0.0.0, 
Culture=neutral, PublicKeyToken=b77a5c561934e089' is not marked as serializable. 

有没有办法解决这个问题? ive将Serializable属性添加到我所有的类中,但是我不能将属性添加到类似的东西中,我可以吗?如果可以的话,是否有办法解决这个问题呢?因为我不想总是必须将[Serializable]添加到一切。如何序列化包含System.Threading.Thread的对象?

PS,在我的项目中,我动态编译C#代码并将其包含在我的应用程序中。

编辑一:由于我的应用程序的性质,一切,所有事件等都由我独立的线程来管理。我无法摆脱这个事实,因为我需要在同一时间完成许多任务。有没有办法解决这个事实?

回答

6

一种选择是将线程对象(和其他任何你不想序列化的)标记为[NonSerialized]

然后,您可以使用您序列化的任何信息来重建非序列化对象。

4

你不能序列化一个线程,所以你最好的选择是从你需要序列化的任何类中去除对Thread的依赖。通常你希望可序列化的对象主要由原始字段组成,或者对其他也可序列化的对象的引用。

0

[NonSerializable]拼写错误,应该是[NonSerialized]

相关问题