从Silverlight和Windows exe序列化和反序列化对象

时间:2013-05-03 20:47:53

标签: .net xml silverlight

好的,我在服务器上运行了前端Silverlight GUI和后端Windows服务。前端将请求放入SQL Server数据库,服务处理它们。请求的大部分是一个对象,我希望Silverlight序列化为XML字符串并放入数据库中。 Windows服务需要对其进行去除。

所以我需要一个可以被Silverlight和普通C#Windows程序引用的类,并且至少可以通过Silverlight序列化为字符串,并通过Windows服务从字符串反序列化。

对象本身没有任何特定于Silverlight的内容,但必须在Silverlight dll中才能使用前端。但这意味着我必须使用Silverlight方法对其进行反序列化,并且在从服务调用时它们不起作用。

我唯一能做的就是在类中编写一个Serialise方法,使用正常的.Net在Windows服务中使用Silverlight和Deserialise方法。

有更好的方法吗?

--- Alistair。

2 个答案:

答案 0 :(得分:0)

听起来你应该使用WCF RIA service project。这允许您共享单个代码库,Visual Studio将其编译为单独的Silverlight和.Net程序集。

答案 1 :(得分:0)

两个选项:

  • 将代码编写为可移植类库,选择您需要的框架;这为您提供了一个可供多个框架使用的单个dll,但(显然)将您限制为您选择的框架可用的功能的共享子集(交集)
  • 在多个框架上单独编译相同的DTO代码 ;大多数标准DTO代码都可以很好地编译Silverlight和Windows目标 - 因为它们主要是jut添加XmlSerializer属性等 - 没有什么特定于目标的。
  • 存在XmlSerializer

请注意,xml在语言,操作系统,硬件等之间正常工作 - 让它在Silverlight和Windows之间工作是相当平凡的。