1

在搜索 DataContractSerialization 时,我发现了各种文章,其中提到 DataContractSerialization 与 WCF 一起使用。现在我正在使用.net 4.0(不是任何类型的服务)开发一个桌面应用程序。此应用程序具有要序列化的各种数据。

通过查看 DataContractSerialization 的功能,我想为我的应用程序使用 DataContractSerialization。

所以请告诉我 DataContractSerialization 是否可用于桌面应用程序以及处理版本控制的任何指南。

4

4 回答 4

1

是的,DataContractSerializer 是为 WCF 使用而编写的,但它是独立且自包含的,可以在不以任何方式使用 WCF 的情况下使用。它甚至在一个单独的组件中。

于 2012-06-08T10:04:32.407 回答
1

您可以将 datacontractserializer 用于桌面应用程序没有问题。至于版本控制,您可以将新成员添加到现有数据合约中,并且很容易处理丢失的数据。

但是,如果您想删除字段或更改现有字段的含义(例如,您的鞋子属性“尺码”曾经是欧元尺码,但现在是英国鞋码),那么很快就会变得困难。然后你应该创建一个新的合约版本。请参阅此问题:使用 DataContractSerializer 进行简单数据文件版本控制

这是微软关于版本控制策略的文档

于 2012-06-08T10:06:44.883 回答
0

是的,你可以使用它。当您尝试序列化字典和列表时,Xml 序列化有一些缺点。但是 DataContractSerialization 提供了我们需要的所有功能。

于 2012-06-08T09:59:50.403 回答
0

是的你可以。

Aside from that WCF does not exclude Desktop apps - it can be hosted in a desktop application by using the ServiceHost class.

于 2012-06-08T10:20:51.740 回答