我正在将 Silverlight 与 WCF 一起使用。我有一个相当复杂的对象,我想发送到服务器。该对象在多个服务之间共享,因此不能成为数据合约。我想知道是否有一种简单的方法可以自己进行序列化。一种适用于 .Net 4(服务器端)和 Silverlight 4(客户端)的方式。
请注意,我没有使用 RIA 服务,因为自从我开始使用 RIA 服务以来,它就一直困扰着我。
编辑:
我尝试使用DataContractAttribute
andDataMemberAttribute
无济于事。我从服务中得到以下异常:
System.IO.FileNotFoundException:无法加载文件或程序集“System.Runtime.Serialization,Version=2.0.5.0,Culture=neutral,PublicKeyToken=7cec85d7bea7798e”或其依赖项之一。该系统找不到指定的文件。文件名:'System.Runtime.Serialization,版本=2.0.5.0,Culture=neutral,PublicKeyToken=7cec85d7bea7798e'
原因似乎很明显。我相信这是因为包含 POCO 的 DLL 是 Silverlight 类库。这是我知道在我的 WCF 服务和我的 Silverlight 客户端之间共享对象的唯一方法。我认为,问题在于 Silverlight DLL 使用的是 Silverlight 版本,System.Runtime.Serialization
因此 POCO 不能在非 Silverlight 环境中使用。我必须在多个服务之间共享这个 POCO,所以它必须存在于一个单独的程序集中。
这就是为什么我想控制我如何序列化我的对象;在对象本身内部序列化它们。